次の構造を持つかなり複雑なdjangoアプリがあります。
/myapp
/myapp/obj1/..
/myapp/obj1/views.py
/myapp/obj1/forms.py
/myapp/obj2/..
/myapp/obj2/views.py
/myapp/obj2/forms.py
/myapp/tests/..
/myapp/tests/__init__.py
/myapp/tests/test_obj1.py
/myapp/tests/test_obj2.py
私はより多くのオブジェクトを持っています。からインスタンスを/myapp/tests/__init__.py
インポートし、利用可能なすべてのテストを実行するだけで十分です。TestCase
test_obj1.py
test_obj2.py
私がやろうとしているのは、カスタム テスト スイートを作成することです。ドキュメントによると:
モジュールのテスト スイートを定義する 2 つ目の方法があります。models.py または tests.py で suite() という関数を定義すると、Django テスト ランナーはその関数を使用して、そのモジュールのテスト スイートを構築します。これは、単体テストの推奨構成に従います。複雑なテスト スイートを作成する方法の詳細については、Python のドキュメントを参照してください。
だから、私はこの関数を次のように作成しました:
def suite():
suite = unittest.TestSuite()
suite.addTest(TestObj1Form())
suite.addTest(TestObj2Form())
return suite
ただし、テストを実行すると、次のエラーが発生しますValueError: no such test method in <class 'myproject.myapp.tests.test_obj1.TestObj1Form'>: runTest
。もちろん、このメソッドを定義することはできますが、test を実行すると、このメソッドのみが呼び出され、すべてのtest*
メソッドが無視されます。
django アプリのカスタム テスト スイートを適切に作成する方法について何か提案はありますか? 私はグーグルで検索しましたが、それについて何も見つかりませんでした。