0

インスタンスがありunittest.TestSuiteます。これは、ネストされたTestSuite / TestCaseオブジェクト(任意の形状/深さ)のツリーです。

実際にテストを実行せずに、スイート全体に含まれる個々のテストIDのリストを取得したいと思います。(noseの「--collect-only」オプションに似ています)。

再帰的に歩く必要がありますか、それとも再利用できるTestSuiteものがありますか?unittestこれに取り組むためのヒントはありますか?

4

1 に答える 1

3

FWIW、これはうまくいきます:

テストツール経由:

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)]
于 2013-03-18T23:54:37.603 に答える