У меня есть тестовый пример, который использует setUp
и выглядит следующим образом:
from django.test import TestCase, Client, TransactionTestCase
...
class TestPancakeView(TestCase):
def setUp(self):
self.client = Client()
# The Year objects are empty (none here - expected)
print(Year.objects.all())
# When I run these Test by itself, these are empty (expected)
# When I run the whole file, this prints out a number of
# Pancake objects causing these tests to fail - these objects appear
# to be persisting from previous tests
print(Pancake.objects.all())
# This sets up my mock/test data
data_setup.basic_setup(self)
# This now prints out the expected years that data_setup creates
print(Year.objects.all())
# This prints all the objects that I should have
# But if the whole file is ran - it's printing objects
# That were created in other tests
print(Pancake.objects.all())
[...tests and such...]
data_setup.py
- это файл, который просто создает все соответствующие тестовые данные для моих тестов, когда они им нужны.Я использую Factory Boy для создания тестовых данных.
Когда я сам запускаю TestPancakeView
- мои тесты проходят, как и ожидалось.
Когда я запускаю весь файл test_views.py
, мой TestPancakeView
тесты не пройдены.
Если я изменю его на TransactionTestCase - он все равно не будет выполнен, когда я запускаю весь файл.
Я создаю данные теста Pancake следующим образом:
f.PancakeFactory.create_batch(
2,
flavor=blueberry,
intensity='high'
)
Никакие другие тесты не демонстрируют такого поведения, все они действуют одинаково, когда я запускаю их по отдельности или когда я запускаю их как часть всего файла.