【问题标题】:Python unittest - get TestCase id's from nested TestSuitePython unittest - 从嵌套的TestSuite中获取TestCase id
【发布时间】:2023-03-21 11:15:01
【问题描述】:

我有一个unittest.TestSuite 实例。它是嵌套的 TestSuite/TestCase 对象树(任意形状/深度)。

我想获取包含在整个套件中的单个测试 ID 的列表,而无需实际运行测试。 (类似于鼻子的“--collect-only”选项)。

我是否需要递归遍历TestSuite,或者unittest 中有什么东西可以重复使用? 解决此问题的任何提示?

【问题讨论】:

    标签: python unit-testing nose


    【解决方案1】:

    FWIW,这很好用:

    通过testtools:

    def iterate_tests(test_suite_or_case):
        """Iterate through all of the test cases in 'test_suite_or_case'."""
        try:
            suite = iter(test_suite_or_case)
        except TypeError:
            yield test_suite_or_case
        else:
            for test in suite:
                for subtest in iterate_tests(test):
                    yield subtest
    

    您可以使用testtools.testsuite.iterate_tests(suite) 来迭代嵌套套件。 例如,使用列表推导获取测试 id 的列表:

    [test.id() for test in testtools.testsuite.iterate_tests(suite)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多