python - 自动使用在单独模块中定义的 pytest 装置

标签 python fixtures pytest

我的项目中有以下文件树:

...
tests/
    __init__.py
    test_abc.py
...

我在 __init__.py 中定义了一个固定装置:

@pytest.fixture(autouse=True)
def client():
    return TestClient()

我想在 test_abc.py 中使用此装置:

from . import client

def test_def():
    client.get(...) # Throws an error

如何在其他模块的测试方法中使用我的 autouse 固定装置,而不传递对固定装置的显式引用或使用 pytest 装饰器?

最佳答案

自动使用适用于执行所有测试所需的一些设置的固定装置,并且可能会也可能不会返回仍然有用的东西作为测试使用的固定装置。

想要访问固定装置返回的内容的测试必须将固定装置声明为参数,以便它们可以访问它。因此,如果您的测试想要访问固定装置,则必须将其声明为参数,这就是 pytest 的工作原理。希望这会有所帮助。

关于python - 自动使用在单独模块中定义的 pytest 装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31223569/

相关文章:

python - 具有良好 RTCP 支持的 Python 中的 RTP 库是什么?

python - Numba Prange 示例不起作用

python - 有没有一种 Django 方法可以将测试结果与 fixture 进行比较?

pycharm - 在 pycharm pytest 插件中使用特定参数值运行测试

python - 使用 plotly 创建图像的子图

python - Openerp 帮我删除这个

ruby-on-rails - 不会为Rails固定装置执行Postgresql触发器

python - 如何设置 web2py fixtures

python - 使用 pytest 在 python 中循环测试

python - pytest.ini 值未正确设置