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)
、装飾されたテストの影響を受けたものはロールバックされません。
ありがとうございました、
/デビッド