具有串行和并行执行的系统测试框架。
systest的Python项目详细描述
安装
pipinstallsystest
说明
以串行和/或并行方式执行一系列测试用例。
列表中的测试用例以串行方式执行,测试用例以元组方式执行 在单独的python线程中并行执行。
这个框架是在考虑集成/系统测试的情况下创建的。这个 框架不是用来替代unittest,但是 而不是作为它的补充。
示例用法
请参见测试套件: https://github.com/eerimoq/systest/blob/master/tests/test_systest.py
例如,下面的序列从测试用例开始 MyTestCase("1")。当执行MyTestCase("1")时, MyTestCase("2")和MyTestCase("3")的列表 MyTestCase("4")并行执行。当两者都 MyTestCase("2")和MyTestCase("3")的列表 MyTestCase("4")已执行,MyTestCase("5")是 执行。然后序列结束。
importloggingfromsystestimportTestCase,Sequencer,configure_loggingLOGGER=logging.getLogger(__name__)# Define a testcase.classMyTestCase(TestCase):"""Test case description. """def__init__(self,name):super(MyTestCase,self).__init__()self.name="my_testcase_"+namedefrun(self):LOGGER.info("Hello!")self.assert_equal(1,1)self.assert_true(1==1)self.assert_in(1in[1,2])self.assert_none(None)withself.assert_raises(RuntimeError)ascm:raiseRuntimeError('foo')self.assert_equal(str(cm.exception),'foo')# Configure the logging module.configure_logging()sequencer=Sequencer("my_sequence")# Run the sequence.sequencer.run([MyTestCase("1"),(MyTestCase("2"),[MyTestCase("3"),MyTestCase("4")]),MyTestCase("5")])# Print the report.sequencer.report()
输出为:
Name: my_sequence Date: 2016-02-02 18:42:40.446213 Node: erik-VirtualBox User: erik --------------------------------------------------------------- Name: my_testcase_1 Description: Test case description. Hello! my_testcase_1: PASSED in 0m 0s --------------------------------------------------------------- Name: my_testcase_2 Description: Test case description. Hello! my_testcase_2: PASSED in 0m 0s --------------------------------------------------------------- Name: my_testcase_3 Description: Test case description. Hello! my_testcase_3: PASSED in 0m 0s --------------------------------------------------------------- Name: my_testcase_4 Description: Test case description. Hello! my_testcase_4: PASSED in 0m 0s --------------------------------------------------------------- Name: my_testcase_5 Description: Test case description. Hello! my_testcase_5: PASSED in 0m 0s ---------------------- Test summary begin ---------------------- [ [ my_testcase_1: PASSED, ( my_testcase_2: PASSED, [ my_testcase_3: PASSED, my_testcase_4: PASSED ] ), my_testcase_5: PASSED ] ] Execution time: 0m 0s Result: PASSED (passed: 5, failed: 0, skipped: 0, xpassed: 0, xfailed: 0) ----------------------- Test summary end -----------------------