私はDjangoユニットテストを作成しており、繰り返し機能を持つ非常に類似したモデルをいくつか持っています。しかし、いくつかの違いがありますので、他のTestCaseクラスが継承する抽象的なBaseTestCaseクラスを作成しました。 BaseTestCaseクラスを継承しているTestCasesがテストを実行しても、DjangoはBaseTestCaseクラスのテストも実行しようとしていることを除いて、正常に動作しているようです。 Djangoは抽象BaseTestCaseでテストを実行したくないはずですか?これが起こらないようにするために欠落している設定がありますか?抽象的なdjango.testを停止するテストを実行しているTestCaseクラス
テストケースは、レイアウトは
class BaseTestCase(SetupTestCase):
api = ""
def test_obj_list(self):
response = self.client.get(self.api)
self.assertTrue(response.status_code == 200)
def test_obj_create(self):
pass
def test_obj_retrieve(self):
pass
def test_obj_update(self):
pass
def test_obj_delete(self):
pass
class Meta:
abstract = True
class ChildTestCaseOne(BaseTestCase):
api = "/api/v0.1/path_one/"
class ChildTestCaseTwo(BaseTestCase):
api = "/api/v0.1/path_two/"
class ChildTestCaseThree(BaseTestCase):
api = "/api/v0.1/path_three/"
class ChildTestCaseFour(BaseTestCase):
api = "/api/v0.1/path_four/"
class ChildTestCaseFive(BaseTestCase):
api = "/api/v0.1/path_five/"
これは、25のテスト、5テストケースのための5つのテストを実行する必要がありますが、それはそれぞれの子クラスのための5つのテストを実行した後に、それは30を実行し、それがために5テストを実行しますベースのテストケースも同様です。
それがうまくいった、ありがとうluvejo! DjangoのTestCaseクラスを継承して以来、テストを続けていたのは理にかなっています。 – JBT