代码之家  ›  专栏  ›  技术社区  ›  Nick Chapman

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

  •  0
  • Nick Chapman  · 技术社区  · 8 年前

    TestA TestB , TestC ,我希望它们按特定顺序运行,例如 --&燃气轮机; 测试C --&燃气轮机; . 我如何确保测试实际上是按此顺序运行的?

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

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

    2 回复  |  直到 8 年前
        1
  •  0
  •   geckos    8 年前

    您可以通过将特定测试用例传递给unittest模块来选择要运行的测试用例。你可以把这样的东西写进剧本里!

    python -m unittest your.package.test.TestCaseB
    python -m unittest your.package.test.TestCaseA
    
        2
  •  0
  •   Nick Chapman    8 年前

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