Идея этого вопроса проста для понимания, но сложна для решения: мне нужно обмениваться данными между тестами.
У меня есть проект Django, и я использую pytest-django и pytest-descibe для определения и запуска тестов.
В то время как в pytest база данныхоткатывается после каждого теста, в «методе описания» принято делить «контекст» между тестами в рамках одного описания.Это делает написание тестов более читабельным и быстрым для запуска, а также позволяет запускать все утверждения, даже если один тест не проходит между ними.
По этой причине я хотел бы отключить стандартное поведение отката базы данных прикаждый тест и вместо этого выполняйте его после запуска всего описания.
Это упрощенная версия моих тестов:
pytestmark = [pytest.mark.django_db]
def describe_users():
email = 'foo@example.com'
def test_create_a_user_and_it_exists():
User.objects.create(email=email)
assert User.objects.filter(email=email).exists() # Pass
def test_the_user_keeps_to_exist():
assert User.objects.filter(email=email).exists() # Fail
Я пытался использовать приспособление db_access_without_rollback_and_truncate предложилв документации, но она не работала, база данных по-прежнему сбрасывается после каждого теста.
Есть ли простой способ добиться этого?
Заранее спасибо.