diff options
| author | Gary Oberbrunner <garyo@oberbrunner.com> | 2014-03-30 14:53:39 (GMT) |
|---|---|---|
| committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2014-03-30 14:53:39 (GMT) |
| commit | 29b5018f78b8fe161b76b19125eec2a164c58098 (patch) | |
| tree | 711940a9fd90bb13ba470dc05e29ab81ff3c2126 /testing/framework/TestUnit/cli.py | |
| parent | 1166292efdcece6306f8545fd6fb3ce44521b77d (diff) | |
| parent | 32a609a88ee6d8682840dc9b2ffd31988f91a12a (diff) | |
| download | SCons-29b5018f78b8fe161b76b19125eec2a164c58098.zip SCons-29b5018f78b8fe161b76b19125eec2a164c58098.tar.gz SCons-29b5018f78b8fe161b76b19125eec2a164c58098.tar.bz2 | |
Merged in techtonik/scons (pull request #124)
New configurable test runner for unittests
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() |
