我遇到了一个非常奇怪的问题。
我有一个测试类,它继承了django.test.TestCase,它有大约5个不同的测试。 当我运行我的完整测试套件(使用nose,并指定sqlite作为后端)时,会出现一系列故障。当我去调试测试时,单独运行它们会很顺利。
在我的一个测试中,我在添加其他对象之前得到了对象的数量。离。
test_count = TestObject.objects.all().count()
# Add an entry to TestObject
self.assertEqual(test_count + 1, TestObject.objects.all().count()) # should pass
令人困惑的是,它在单独运行时可以正常工作,但在与其他测试运行时则无法正常工作。
在pdb中,当我查看变量时,test_count
等于1,但TestObjects.objects.all().count()
在第一行之后等于[]
。
ipdb> test_count
1
ipdb> TestObject.objects.all()
[]
ipdb> TestObject.objects.all().count()
0
在将值分配给test_count
之后但在将另一个对象添加到TestObject
当我的同事参加我们的测试时,他的所有通行证都很好。
以前有没有人经历过这种性质的事情?我试图改变变量名称,我想也许某处有冲突。我完全没有想法。谢谢你的帮助。
答案 0 :(得分:0)
根据SO帖子,你看到的是TestObject.objects.all()。count() 在连续的调用中返回两个不同的值。
除非有其他东西进入,否则基本上是不可能的 并为你的数据库做一些事情。
或者,您的TestCase子类是否正确调用 super(MyTestCase,self).setUp()和其他超类方法来获取DB 设置正确吗?
马尔科姆
从django-users发布