2017-11-20 17 views
0

장고 테스트를 만들고 반복적 인 기능을 가진 매우 유사한 모델을 가지고 있습니다. 그러나 몇 가지 차이점이 있으므로 다른 TestCase 클래스에서 상속받은 추상 BaseTestCase 클래스를 만들었습니다. BaseTestCase 클래스를 상속 한 TestCases가 테스트를 끝내면 Django는 BaseTestCase 클래스 테스트도 계속 실행한다는 사실을 제외하고는 정상적으로 작동하는 것 같습니다. 장고는 추상 BaseTestCase에서 테스트를 실행하지 않아야하지 않습니까? 이것이 일어나지 않도록하기 위해 누락 된 구성 유형이 있습니까?Abstract django.test를 멈추십시오 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 개 테스트를 실행 한 후에는 (30)를 실행, 그것은을위한 5 개 테스트를 실행합니다 기본 테스트 케이스.

답변

2

multiple inheritance?

from django.test import TestCase 

class BaseTestCase: 
    # ... 

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

장고에서 추상 테스트 사례에 대해 찾지 못했습니다. ¿ 그 곳에서 SetupTestCase 클래스는 어디서 얻었습니까?

+0

그 덕분에 luvejo! Django의 TestCase 클래스에서 상속 받았기 때문에 테스트를 계속 실행했다는 것을 이해할 수 있습니다. 몇 일간 터널 비전을 얻었습니다 : P – JBT