- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
继承母类使其类方法 setUpTestData
为每个子类调用。这是我异常(exception)但不是我想要的。
这是一个极简主义的例子
from django.test import TestCase
class ParentClass(TestCase):
@classmethod
def setUpTestData(cls):
cls.parent_attr = "parent value"
print("ParentClass.setUpTestData called") # this is called twice
class TestChild1(ParentClass):
@classmethod
def setUpTestData(cls):
super(TestChild1, cls).setUpTestData()
cls.child_attr = "child value 1"
def test_child(self):
self.assertEqual(self.parent_attr, "parent value")
self.assertEqual(self.child_attr, "child value 1")
class TestChild2(ParentClass):
@classmethod
def setUpTestData(cls):
super(TestChild2, cls).setUpTestData()
cls.child_attr = "child value 2"
def test_child(self):
self.assertEqual(self.parent_attr, "parent value")
self.assertEqual(self.child_attr, "child value 2")
$ python manage.py test accounts.tests.test_test
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
ParentClass.setUpTestData called
.ParentClass.setUpTestData called
.
----------------------------------------------------------------------
Ran 2 tests in 0.006s
OK
Destroying test database for alias 'default'...
我希望能够创建许多子类,其中每个子类都会对公共(public)“继承”数据库进行微小的修改。但是我不想多次运行父类方法,因为它非常慢。
如何确保只生成一次父数据库,并且每个子类都在父数据库的副本上工作,而不是重新生成整个数据库。
最佳答案
正如您自己所说,@brian-destura 也指出,在测试类之间共享数据的最佳选择是实现您自己的测试运行程序。
运行者应该继承自django.test.runner.DiscoverRunner
。在该运行者中,您可以根据需要覆盖 setup_test_environment()
( docs ) 或 setup_databases()
( docs )。
关于python - 继承为每个 child 调用的 Django SetUpTestData 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71584564/
我需要在我的 setUpTestData 序列中添加多对多关系,这样我的测试才能正确运行。 根据 the docs ,在保存对象之前无法创建多对多关系,因为主键必须首先存在。这意味着我不能像处理其他变
我正在运行 django + django_tenants + django_restframework。在 Multi-Tenancy 环境中,每个模式的租户表中都需要有一个实例 - 在我的测试中,
我真的很享受 Django 1.8 中 setUpTestData 和 --keepdb 带来的便利! 但是,我遇到了在多个测试文件中保持数据一致的问题。我想将我的 setUpTestData 类方法
Django 1.8 附带 a refactored TestCase它允许通过 setUpTestData() 使用事务和保存点在类级别初始化数据方法。这与 unittest 的 setUp() 形
classmethod TestCase.setUpTestData() The class-level atomic block described above allows the creatio
我正在尝试使用测试运行程序测试 Django 应用程序。我想设置一次测试数据以运行多个不同的测试类,而不是在每个测试类中设置相同的数据。因此,我使用 setUpTestData() 而不是 setUp
继承母类使其类方法 setUpTestData 为每个子类调用。这是我异常(exception)但不是我想要的。 这是一个极简主义的例子 from django.test import TestCas
我有一堆 fixture 东西,我想为测试类做一次,但我也不希望相关的测试弄乱它。 我还没有真正了解 py.test fixture 系统,所以我不知道应该如何完成。 在 vanilla Django
更具体地说,每个的用例是什么? 目前我所了解的内容: 设置类 此方法在测试类中的所有测试之前运行一次 设置测试数据 如果数据库支持事务,则此方法运行一次。否则它会在每次测试之前运行。 设置 此方法在测
我在单元测试中遇到了数据库问题。我认为这与我使用 TestCase 和 setUpData 的方式有关。 当我尝试使用某些值设置我的测试数据时,测试会抛出以下错误: django.db.utils.I
我是一名优秀的程序员,十分优秀!