【发布时间】:2017-09-27 16:39:05
【问题描述】:
我编写了一个测试来检查我保存在我的设备中的数据的完整性。它是一个继承自django.tests.TestCase 的类,它声明了它需要的fixture。当我只运行此类中的方法时,它们通过了。但是,当我运行所有测试时,其他测试中的一些固定装置仍保留在数据库中,这使测试失败。我尝试了不同的变体,现在我正在覆盖setUpTestData 类方法以在测试之前杀死所有数据库数据,但这不可能。一定有更好的方法:)
class FixturesTest(TestCase):
fixtures = ["tariff.json"]
@classmethod
def setUpTestData(cls):
TariffModel.objects.all().delete()
def test_tariff_fixtures(self):
"""Check the fixtures for tariffs"""
...
谢谢。
UPD:也就是说,其他一些测试确实会加载它们自己的固定装置。但我认为应该在两次测试之间放弃它们。
【问题讨论】:
-
你能发布一个小代码示例来重现错误吗?另外,您使用的是哪个特定的 Django 版本(
1.x.xx)? -
我升级到 1.11.5,但没有帮助。
-
同样的问题,但仅限于 postgresql。使用 sqlite3 它确实可以清除数据库。