diff options
Diffstat (limited to 'testing/framework/TestUnit/cli.py')
| -rw-r--r-- | testing/framework/TestUnit/cli.py | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/testing/framework/TestUnit/cli.py b/testing/framework/TestUnit/cli.py new file mode 100644 index 0000000..6aec735 --- /dev/null +++ b/testing/framework/TestUnit/cli.py @@ -0,0 +1,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()  | 
