Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django TestRunner查询计数不正确,数据损坏??大混乱_Django_Unit Testing_Nose - Fatal编程技术网

Django TestRunner查询计数不正确,数据损坏??大混乱

Django TestRunner查询计数不正确,数据损坏??大混乱,django,unit-testing,nose,Django,Unit Testing,Nose,我一直有一个很奇怪的问题 我有一个测试类,它是django.test.TestCase的子类,其中包含大约5个不同的测试。 当我运行完整的测试套件(使用nose,并指定sqlite作为后端)时,会出现一系列失败。当我去调试测试,单独运行它们时,它们通过得很好 在我的一个测试中,我在添加一个额外的对象之前得到了对象的数量。前 test_count = TestObject.objects.all().count() # Add an entry to TestObject self.assertE

我一直有一个很奇怪的问题

我有一个测试类,它是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\u count
等于1,但是
TestObjects.objects.all().count()
在第一行之后等于
[]

ipdb> test_count
1
ipdb> TestObject.objects.all()
[]
ipdb> TestObject.objects.all().count()
0
在将值分配给
test\u count
之后,但在将另一个对象添加到
TestObject

当我的同事进行我们的测试时,他所有的测试都通过了


以前有人经历过这种事情吗?我试图更改变量名,我想可能在某个地方有冲突。我完全没有主意了。谢谢您的帮助。

根据SO帖子,您将看到TestObject.objects.all().count() 在连续调用时返回两个不同的值

这基本上是不可能的,除非有别的东西在里面 对数据库做一些事情

或者,TestCase的子类是否正确地调用了 super(MyTestCase,self).setUp()和其他超类方法来获取数据库 设置对吗

马尔科姆


来自django用户的帖子

如果删除TestCase的tearDown()方法中的所有TestObject,效果是否良好?