У меня была очень странная проблема.
У меня есть тестовый класс, который является подклассом django.test.TestCase, в котором содержится около 5 различных тестов.
Когда я запускаю свой полный набор тестов (использующий нос и указывающий 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
Когда мой коллега проводит наши тесты, все его тесты проходят нормально.
Кто-нибудь испытывал подобные вещи раньше? Я пытался изменить имена переменных, я думал, может быть, где-то возник конфликт. У меня все вне идей. Спасибо за вашу помощь.