python - Django:保持 setUpTestData 干燥

标签 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")

设置数据文件

???

最佳答案

能不能只继承声明方法的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

关于python - Django:保持 setUpTestData 干燥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31325708/

相关文章:

Python 3 : Determine if object supports IO

python - Tornado set_secure_cookie

python - 运行 Apache 时打开 SQLite3 数据库文件的 Django 错误

django - 测试 Jinja2 支持的 Django View 时如何访问 response.context

python - 登录、注册和注销测试失败 AssertionError : 200 ! = 302 django

python - psycopg2 和 SQL 注入(inject)安全

python - 如何省略 "connect: network is unreachable"消息

javascript - Django Rest Framework/Angular JS 预检选项请求

django - 不要将现有迁移应用于 Django 模型

python - Django 测试 - 在所有测试中修补对象