繁体   English   中英

Django 参数化测试的 Django_db 标记

[英]Django_db mark for django parametrized tests

过去几周我一直在学习 django,我尝试使用参数化装置和测试功能,据我所知,我可以一次简单地运行多个测试。 通过参数化测试,我试图测试在所有模型中都可以找到的功能。 我阅读了文档,但遗憾的是,我一尝试就收到以下错误消息Database access not allowed, use the "django_db" mark, or the "db" or "transactional_db" fixtures to enable it. . 我确实阅读了有关错误和可能的修复的信息,我发现创建一个 autouse 固定装置并将其放入conftest.py

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

可悲的是,此更改产生了 0 差异,并且在运行测试后我收到了相同的确切错误。 我也尝试使用 django_db 标记来授予对数据库的测试访问权限,但这似乎也不起作用。

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

在相关函数上方创建一个装饰器 @pytest.mark.django_db 或者您也可以使用 @pytest.mark.django_db(transaction=True) ,这有助于 pytest 告诉 django 相关函数将需要数据库访问权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM