6

Django アプリケーションのテスト実行で pytest/pytest-django を使用する場合、データを DB に永続化するにはどうすればよいですか?

私は pytest を実行しpy.test --nomigrations --reuse-db -s、Postgres DBtest_<configued_db_name>は期待どおりに作成されますが、テスト間で DB に永続化されているようには見えず、テスト実行の最後に DB は空です。

import pytest
from django.contrib.auth.models import User


@pytest.mark.django_db(transaction=False)
def test_insert_user():
    user = User.objects.create_user(username="test_user", email="test_user@test.com", password="test")
    users = User.objects.all()
    assert len(users) > 0

@pytest.mark.django_db(transaction=False)
def test_check_user():
    users = User.objects.all()
    assert len(users) > 0

最初のテストは成功し、2 番目のテストでは、DB に何かが保持されているかどうか疑問に思うことはありません。pystest-django のドキュメントによると@pytest.mark.django_db(transaction=False)、装飾されたテストの影響を受けたものはロールバックされません。

ありがとうございました、

/デビッド

4

2 に答える 2