1

TestCasetests パッケージの下の特定のモジュールで、すべてのクラスからテストを実行するにはどうすればよいですか?

Django プロジェクトでは、tests/ の下に tests.py を分割しました。
各ファイル (モジュール) にはいくつかの TestCase クラスがあり、それぞれにいくつかのテスト メソッドがあります。 init .py はそれぞれをインポートします。

私はこれらを行うことができることをすでに知っています:

  1. すべてのテストを実行します。

    ./manage.py test myapp
    
  2. または、特定の TestCase を実行します。

    ./manage.py test myapp.OneOfManyTestCase    
    
  3. または、TestCase クラスから特定のテスト メソッドを実行します。

    ./manage.py test myapp.OneOfManyTestCase.test_some_small_method
    

ただし、特定のモジュールからすべての TestCases を実行する方法がわかりません。
たとえば、OneOfManyTestCaseクラスは からtests/lot_of_test.pyのもので、他のテスト ケースもあります。
Django は、TestCases を使用するモジュールを気にしていないようです。

内部ですべての TestCases を実行するにはどうすればよいlot_of_testですか?

4

2 に答える 2

1

@sneawoが言ったように、私は自分のTestSuiteRunnerを書き留めることになりました。

Djangoスタイルが失敗した後、通常のpythonスタイルをインポートしてみてください。

修正する1行:

suite.addTest(build_test(label))

の中へ

try:
    suite.addTest(django.test.simple.build_test(label))
except ValueError:
    # change to python-style package name
    head, tail = label.split('.', 1)
    full_label = '.'.join([head, django.test.simple.TEST_MODULE, tail])
    # load tests
    tests = unittest.defaultTestLoader.loadTestsFromName(full_label)
    suite.addTests(tests)

TEST_RUNNERと設定settings.py

TEST_RUNNER='myapp.tests.module_test_suite_runner.ModuleTestSuiteRunner'
于 2013-02-15T18:25:40.673 に答える
1

これを達成するには、DjangoTestSuiteRunner から独自の TestRunner をサブクラス化し、メソッドをオーバーライドする必要があると思いますbuild_suite

于 2013-02-15T14:48:05.040 に答える