py.test和Django DB访问除了一个测试类

时间:2018-03-24 09:45:29

标签: django pytest

对我而言,很清楚“How can I give database access to all my tests without the django_db marker?

但我更喜欢/需要进行几次没有DB访问的类测试。 当enable_db_access_for_all_tests对所有测试都有效时,如何排除类或方法?

是否有像@pytest.mark.no_django_db这样的装饰者或其他可能的解决方案?

谢谢!

d

1 个答案:

答案 0 :(得分:1)

用于标记测试的最灵活的解决方案是使用conftest.py中的pytest_collection_modifyitems钩子,并为需要数据库访问权限的那些测试有选择地添加标记。这是一个遍历所有收集的测试并向其添加标记的示例。

def pytest_collection_modifyitems(config, items):
    # Do some filtering to items
    for item in items:
        item.add_marker('django_db')

使用import pdb; pdb.set_trace()或任何其他调试工具来检查项目的外观是安全的。