Python unittest按特定顺序运行TestCases

时间:2017-10-03 22:30:29

标签: python python-unittest

我有很多测试用例,好吧说TestATestBTestC,我希望它们按照TestB等特定顺序运行 - - > TestC - > TestA。如何确保测试实际按此顺序运行?

请注意,这些测试用例是继承自unittest.TestCase的类,而不仅仅是TestCase中的方法。也就是说,我不想知道TestCase中测试的执行顺序,我想知道如何改变TestCase本身运行的顺序。

对于那些想要说我正在做一些可怕而且不是你如何编写单元测试的人,我正在进行集成测试,我知道这对于单元测试来说是一个不好的做法。

2 个答案:

答案 0 :(得分:0)

您可以通过将特定测试用例传递给unittest模块来选择要运行的特定测试用例。你可以在脚本中加入这样的东西!

python -m unittest your.package.test.TestCaseB
python -m unittest your.package.test.TestCaseA

答案 1 :(得分:0)

这个问题的答案是使用unittest.TestSuite来保留添加测试的顺序。您可以执行以下操作:

loader = unittest.TestLoader()
suite = unittest.TestSuite()
tests_to_run = [TestCaseA, TestCaseB, TestCaseC]
for test in tests_to_run:
    suite.addTests(loader.loadTestsFromTestCase(test)
runner = unittest.TextTestRunner()
runner.run(suite)