インスタンスがありunittest.TestSuite
ます。これは、ネストされたTestSuite / TestCaseオブジェクト(任意の形状/深さ)のツリーです。
実際にテストを実行せずに、スイート全体に含まれる個々のテストIDのリストを取得したいと思います。(noseの「--collect-only」オプションに似ています)。
再帰的に歩く必要がありますか、それとも再利用できるTestSuite
ものがありますか?unittest
これに取り組むためのヒントはありますか?
インスタンスがありunittest.TestSuite
ます。これは、ネストされたTestSuite / TestCaseオブジェクト(任意の形状/深さ)のツリーです。
実際にテストを実行せずに、スイート全体に含まれる個々のテストIDのリストを取得したいと思います。(noseの「--collect-only」オプションに似ています)。
再帰的に歩く必要がありますか、それとも再利用できるTestSuite
ものがありますか?unittest
これに取り組むためのヒントはありますか?
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)]