Я работаю над проектом Django, используя программное обеспечение корзины для покупок Satchmo.Я должен использовать довольно сложный пользовательский код для этого проекта, поэтому хотел бы, чтобы все тесты Django и Satchmo проходили.
Однако один из тестов работает только изолированно, а точнее custom.ShopTest.test_custom_product
in product/modules/custom/tests.py
.Этот тест работает изолированно (т.е. с ./manage.py test custom.ShopTest
), но не тогда, когда я запускаю все тесты вместе (./manage.py test
).
Этот тест открывает домашнюю страницу с помощью тестового клиента Django и проверяет, содержатся ли некоторые тексты.на странице.Когда я загружаю тот же прибор в производственную базу данных, эти тексты также появляются на странице.
Кроме того, при запуске теста продукт, название которого должно отображаться на странице, также существует в тестовой базе данных.Таким образом, прибор загружен правильно.
Я думаю, что некоторые другие приложения Satchmo каким-то образом прерывают тестирование, но я всегда предполагал, что Django выполняет тесты как можно чаще в изоляции.
РЕДАКТИРОВАТЬ:
Результат неудачного теста:
======================================================================
FAIL: test_custom_product (product.modules.custom.tests.ShopTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/data/Projects/satchmo/satchmo/apps/product/modules/custom/tests.py", line 43, in test_custom_product
self.assertContains(response, "Computer", count=1)
File "/data/PythonEnvironments/mywebsite.nl/local/lib/python2.7/site-packages/django/test/testcases.py", line 427, in assertContains
" (expected %d)" % (real_count, text, count))
AssertionError: Found 0 instances of 'Computer' in response (expected 1)
----------------------------------------------------------------------
РЕДАКТИРОВАТЬ 2: Я только что обнаружил, что тест не всегда происходит, когда я ставлю точку останова в запрошенной функции просмотра и ждунекоторое время, прежде чем продолжить, когда отладчик останавливается в точке останова.Может быть, это как-то связано с потоками?