gpt4 book ai didi

python - Pytest 运行基于 pytest 命令行参数的 'setup' 方法

转载 作者:行者123 更新时间:2023-12-04 16:45:24 25 4
gpt4 key购买 nike

我的问题是,当我运行 pytest 时,如何执行基于 pytest 参数的设置方法?基本上我希望在运行任何测试之前先运行这个“设置方法”。
为简单起见,假设我有一个文件“text_something.py”

import somemodule

def test_some(usefakemodule):
...
'somemodule' 是否安装在环境中。如果它已经安装,那么它就不会出现问题。如果没有,我需要通过运行一个基本上执行 sys.path.append(XXX) 的方法来添加假模块的路径。
简而言之,如果我想使用假模块目录,我想运行 'pytest -v --usefakemodule',或者只是运行 'pytest -v' 只使用本地安装的库(假设它安装在那里)。
我尝试在 conftest.py 中添加一个装置(范围 = session ),但它似乎没有在执行“test_something.py”之前先运行/执行它,然后它将声明没有名为“somemodule”的模块
我可以在 conftest 中运行常规方法,但我不知道它如何依赖于 pytest 命令行参数“usefakemodule”。

最佳答案

在您的 conftest.py 中,您使用 pytest_addoption 结合 pytest_cmdline_main ,
请参阅文档了解详细信息。

import pytest


def pytest_addoption(parser):
parser.addoption(
"--usefakemodule", action="store_true", default=False, help="Use fake module "
)

def pytest_cmdline_main(config):
usefakemodule = config.getoption("--usefakemodule")
print(usefakemodule)
if usefakemodule:
print("OK fake module ")
else:
print("no fakes")

关于python - Pytest 运行基于 pytest 命令行参数的 'setup' 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63304141/

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