Python 单元测试 运行 特定顺序的测试用例

Python unittest run TestCases in a specific order

我有很多测试用例,比如 TestATestBTestC,我希望它们按特定顺序排列 运行,例如TestB --> TestC --> TestA。我怎样才能确保测试实际上是 运行 这个顺序?

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

对于那些要说我正在做一些糟糕的事情并且这不是您编写单元测试的方式的人,我正在做集成测试,我知道这对单元测试来说是一种不好的做法。

您可以 select 通过将特定测试用例传递给 unittest 模块来 运行 。您可以在脚本中加入类似的内容!

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

这个问题的答案是使用 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)