在Django應用程序的測試運行中使用pytest/pytest-django時,如何將數據保存到數據庫?如何使用pytest-django將測試數據保存到數據庫?
我運行pytest py.test --nomigrations --reuse-db -s
和Postgres DB test_<configued_db_name>
是按預期創建的,但是在測試之間似乎沒有任何東西會持久存在數據庫中,並且在測試運行結束時數據庫爲空。
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="[email protected]", 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
第一個測試通過,二不使我想知道如果有什麼是持久化到數據庫的。根據pystest-django文檔@pytest.mark.django_db(transaction=False)
不會回滾受到裝飾測試影響的任何內容。
謝謝
/大衛
這是測試跑步者的工作原理。如果你想在幾次測試中使用相同的數據,你應該看看pytest文檔中的fixtures。 –
您既可以使用燈具,也可以使用factory_boy之類的軟件在測試之間提供數據。 – jvc26
謝謝。我結束了使用factory_boy和pytest的裝置。 –