-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathtestall.py
executable file
·37 lines (28 loc) · 1.1 KB
/
testall.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/env python
from optparse import OptionParser
import sys
try:
import unittest2 as unittest
except (ImportError, NameError):
import unittest
parser = OptionParser()
parser.add_option("-n", "--num", default=1, help="Number of loops")
parser.add_option("-a", "--run_all", action='store_true', help="Run all tests (including visual)")
parser.add_option("-p", "--pattern", help="Run a custom Pattern to find")
parser.add_option("-f", "--folder", default="tests")
parser.add_option("-v", "--verbose", default=2)
args = parser.parse_args()[0]
if args.pattern:
pattern = args.pattern
elif args.run_all:
pattern = "*test*.py"
else:
pattern = "test*.py"
loader = unittest.TestLoader().discover(args.folder, pattern)
for i in range(int(args.num)):
print("\n\n>>> Running ("+str(i+1)+"/"+str(args.num)+")")
test_results = unittest.TextTestRunner(verbosity=int(args.verbose)).run(loader)
print(">>> Errors: " + str(test_results.errors))
print(">>> Failures: " + str(test_results.failures))
print("return: "+str(not test_results.wasSuccessful()))
sys.exit(not test_results.wasSuccessful())