gpt4 book ai didi

python - pytest 2.3 中的包范围固定装置

转载 作者:太空狗 更新时间:2023-10-29 21:50:31 24 4
gpt4 key购买 nike

在最新版本的 pytest 中,可以很容易地创建函数、类、模块或 session 作用域的固定装置,如下所示:

@pytest.fixture(scope="module") 
def db():
return DB()

这会创建一个 fixture,每个使用它的 python 模块只会调用一次。

但是每个 python 包需要调用一次的固定装置呢?(有了nose,可以使用包的__init__.py中的setUp/tearDown方法来完成)

最佳答案

对于包或目录级别的 fixture ,您可以使用 scope='session' 在您需要的目录中的 conftest.py 文件中声明 fixture .一旦包/目录中的第一个测试使用它, fixture 将被实例化。这是 an example但是,如果 fixture 函数注册了一个终结器,您可能会看到它不是在该目录中的最后一个测试之后直接执行的。我认为可以使 pytest 支持更急切的拆卸或在需要时引入“目录”范围。通常,如果拆解执行得晚一点,只要它不执行得太早,这不是什么大问题 :) 还要注意显然 Jason intends to drop package-level setup/teardown support for nose

无论如何,如果您需要更热切/更精确的 pytest 拆解,请随时 open an issue .

关于python - pytest 2.3 中的包范围固定装置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13259881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com