Django:保持setUpTestData DRY

时间:2015-07-09 18:41:59

标签: python django django-testing django-tests

我一直非常喜欢Django 1.8中setUpTestData和--keepdb的便利性!

但是,我遇到了一个问题,即在多个测试文件中保持数据一致。我想将setUpTestData类方法放在一个位置,并让我的每个测试文件都引用它,这样我就不必将更改复制/粘贴到每个单独的测试文件中。

我对如何解决这个问题感到有些困惑,特别是关于类方法,这似乎阻止我从另一个文件导入我的setUpTestData函数。有人能帮我吗?谢谢你!

当前测试文件

from django.test import TestCase
from models import SpecificModel 

class TestData(TestCase):

    @classmethod
    def setUpTestData(cls):
        cls.test_item = SpecificModel.objects.create(data="some data")

SetupData文件

???

1 个答案:

答案 0 :(得分:3)

你能继承声明方法的TestData类吗?

base_tests.py

from django.test import TestCase
from models import SpecificModel 

class TestData(TestCase):

    @classmethod
    def setUpTestData(cls):
        cls.test_item = SpecificModel.objects.create(data="some data")

specific_tests.py

from .base_tests import TestData

class SubclassOfTestData(TestData):
    # Inherits `setUpTestData`
    pass