2017-11-20 7 views
0

私は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テストを実行しますベースのテストケースも同様です。

答えて

2

multiple inheritanceについて

from django.test import TestCase 

class BaseTestCase: 
    # ... 

class ChildTestCaseN(BaseTestCase, TestCase): 
    # ... 

Djangoの抽象テストケースについて何も見つかりませんでした。あなたはどこからSetupTestCaseクラスを取得しましたか?

+0

それがうまくいった、ありがとうluvejo! DjangoのTestCaseクラスを継承して以来、テストを続けていたのは理にかなっています。 – JBT

関連する問題