我正在创建Django单元测试,并且有一些具有重复功能的非常相似的模型。但是有一些差异,所以我创建了一个其他TestCase类继承的抽象BaseTestCase类。它似乎工作得很好,除了当从BaseTestCase类继承的TestCases完成运行测试时,Django仍然会尝试运行BaseTestCase类测试。 Django不应该不想在抽象的BaseTestCase上运行测试吗?我是否缺少某种类型的配置以确保不会发生这种情况?
测试用例布局
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次测试,但是运行30次。在为每个子类运行5次测试之后,它还运行基础测试用例的5次测试。
答案 0 :(得分:4)
from django.test import TestCase
class BaseTestCase:
# ...
class ChildTestCaseN(BaseTestCase, TestCase):
# ...
我在Django中找不到任何关于抽象测试用例的内容。 ¿你从哪里得到SetupTestCase
课程?