多元遗传
?
from django.test import TestCase
class BaseTestCase:
# ...
class ChildTestCaseN(BaseTestCase, TestCase):
# ...
我在Django中找不到有关抽象测试用例的任何信息。你从哪里得到
test.py
:
from typing import ClassVar
from django.test import TestCase
class BaseTestCase(TestCase):
api: ClassVar[str]
def test_obj_list(self) -> None:
response = self.client.get(self.api)
self.assertTrue(response.status_code == 200)
def test_obj_create(self) -> None:
pass
def test_obj_retrieve(self) -> None:
pass
def test_obj_update(self) -> None:
pass
def test_obj_delete(self) -> None:
pass
class TestCaseOne(BaseTestCase):
api = "/api/v0.1/path_one/"
class TestCaseTwo(BaseTestCase):
api = "/api/v0.1/path_two/"
class TestCaseThree(BaseTestCase):
api = "/api/v0.1/path_three/"
class TestCaseFour(BaseTestCase):
api = "/api/v0.1/path_four/"
class TestCaseFive(BaseTestCase):
api = "/api/v0.1/path_five/"
custom_test_runner.py
:
from unittest import TestLoader
from unittest.suite import TestSuite
from django.test.runner import DiscoverRunner
class CustomTestLoader(TestLoader):
def loadTestsFromTestCase(self, *args, **kwargs) -> TestSuite:
return TestSuite(
test
for test in super().loadTestsFromTestCase(*args, **kwargs)
if test.__class__.__name__.startswith("Test")
)
class CustomTestRunner(DiscoverRunner):
test_loader = CustomTestLoader()
settings.py
:
TEST_RUNNER = "path.to.custom_test_runner.CustomTestRunner"