【发布时间】:2020-11-27 22:18:47
【问题描述】:
我的问题是,当我运行 pytest 时,如何执行基于 pytest 参数的设置方法?基本上我希望这个“设置方法”在运行任何测试之前先运行。
为简单起见,假设我有一个文件 'text_something.py'
import somemodule
def test_some(usefakemodule):
...
“somemodule”要么安装在环境中,要么没有安装。如果它已经安装,那么它将没有问题。如果没有,我需要通过运行一个基本上是 sys.path.append(XXX) 的方法来添加假模块的路径。
简而言之,如果我想使用假模块目录,我想运行“pytest -v --usefakemodule”,或者只使用“pytest -v”来使用本地安装的库(假设它安装在那里)。
我尝试在 conftest.py 中添加一个夹具 (scope=session),但它似乎在执行“test_something.py”之前没有先运行/执行它,然后它会声明没有名为“somemodule”的模块
我可以在 conftest 中运行常规方法,但我不知道它如何依赖于 pytest 命令行参数 'usefakemodule'。
【问题讨论】: