2017-04-18 221 views
1

过去几周我一直在学习django,我尝试使用参数化fixture和测试函数,从我的理解我可以简单地一次运行多个测试。通过参数化测试,我试图测试所有模型中的函数。我阅读了文档,但不幸的是,只要我尝试过,我收到以下错误消息Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.。我读过有关该错误和可能的解决方法和我的发现是conftest.py创建autouse夹具,并把它:django参数化测试的Django_db标记

import pytest 
@pytest.fixture(autouse=True) 
def enable_db_access_for_all_tests(db): 
    pass 

可悲的是,这种变化做出0的区别,我运行测试后收到完全相同的错误。我也尝试使用django_db标记来授予对数据库的测试访问权限,但这似乎也不起作用。

回答

0

我花了一段时间才意识到这一点,但上述WAS“工作”。如果仔细观察错误,它就会改变。 Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it.仍然存在,不正确,但对我来说,无论如何,它正在运行迁移,我不希望它做,并且它在某些旧数据迁移上崩溃。给命令添加--nomigrations为我解决了问题。