对于Django项目的BDD,我们将pytest splinter与py test Django(以及pytest BDD)结合起来。在
我们对真实数据进行测试。因此,我们希望在每次测试之后,或者在所有测试之后回滚对DB所做的所有更改。在
我们的问题: 正确的方法是什么
我们目前所处的位置:
我们重写py.测试django_db_setup
夹具如下conftest.py
:
@pytest.fixture(scope='session')
def django_db_setup(
request,
django_test_environment,
django_db_blocker,
django_db_use_migrations,
django_db_keepdb,
django_db_modify_db_settings,
):
return
当不使用py.测试live_server
fixture,通过浏览器所做的数据库更改不会回滚,并累积到我们的数据库中。在
当使用py.测试live_server
fixture我们得到一个错误,即不能刷新DB表(这不是我们想要的行为)。在
@scenario('user_management.feature', 'Add a new user')
def test_add_a_new_user(db, live_server):
pass
这是错误:
django.db.utils.NotSupportedError: cannot truncate a table referenced in a foreign key constraint
django.core.management.base.CommandError: Database carbon-delta-lab couldn't be flushed.
非常感谢你的帮助!在
目前没有回答
相关问题 更多 >
编程相关推荐