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
|
"""
Choose test runner class from --runner command line option
and execute test cases.
"""
import unittest
import optparse
import sys
def get_runner():
parser = optparse.OptionParser()
parser.add_option('--runner', default='unittest.TextTestRunner',
help='name of test runner class to use')
opts, args = parser.parse_args()
fromsplit = opts.runner.rsplit('.', 1)
if len(fromsplit) < 2:
raise ValueError('Can\'t use module as a runner')
else:
runnermod = __import__(fromsplit[0])
return getattr(runnermod, fromsplit[1])
def run(suite=None):
runner = get_runner()
if suite:
if not runner().run(suite).wasSuccessful():
sys.exit(1)
else:
unittest.main(argv=sys.argv[:1], testRunner=runner)
if __name__ == '__main__':
run()
|