我想为其中一个测试模块提供一个特定的安装/拆卸夹具。显然,我希望它在模块中的所有测试之前运行一次设置代码,在所有测试完成之后运行一次
所以,我想到了这个:
import pytest
@pytest.fixture(scope="module")
def setup_and_teardown():
print("Start")
yield
print("End")
def test_checking():
print("Checking")
assert True
这不是那样的。只有在模块中提供setup_and_teardown
作为第一个测试的参数时,它才会起作用
这就是它的工作方式吗?如果我将它标记为module
级别的fixture,它不应该自动运行吗
模块作用域的固定装置的行为与任何其他作用域的固定装置相同-仅当它们在测试中明确通过、使用
@pytest.mark.usefixtures
标记或设置了autouse=True
时,才使用它们:对于在您的示例中执行设置/拆卸的模块和会话范围的装置,这是最常用的选项
对于产生在测试中访问的对象(例如,只能分配一次的扩展资源)的装置,这没有意义,因为装置必须通过测试才能访问。此外,在所有测试中可能都不需要它
相关问题 更多 >
编程相关推荐