我有一个包含多个python包的代码库。还有一个pytest.ini文件,其中包含这些文件的名称。
示例目录结构:
main_dir
|
|
|--- package1
|
|--- package2
|
|--- pytest.ini
pytest.ini看起来像这样
[pytest.ini]
addopts = package1 package2
问题是因为pytest.ini
我无法以包的方式运行测试。例如,py.test package1\
现在也运行package2
测试的测试。
如果删除pytest.ini文件,该命令将按预期工作。我看到的唯一选择是维护一个未提交的pytest.ini版本,我会根据需要不断更改。
如何覆盖pytest.ini设置并仅以包方式运行测试?
答案 0 :(得分:1)
addopts主要用于配置选项,因为它总是完全添加给定的选项
如果总是添加所有测试文件夹,那么它当然总能找到所有测试
答案 1 :(得分:0)
您可以使用 -o/--override-ini
。来自 pytest 帮助文本:
-o OVERRIDE_INI, --override-ini=OVERRIDE_INI
override ini option with "option=value" style, e.g. `-o
xfail_strict=True -o cache_dir=cache`.
但是您的情况需要另一种解决方法,因为您的 addopts 选项不是 option=value
形式,因为它是一个位置参数。
#pytest.ini file
[addopts]
-k="package1 or package2"
而且,在运行测试时,您可以使用 pytest -o k=package1
。 -k
用于根据表达式选择测试。
答案 2 :(得分:0)
pytest -c MyTestGetJson.ini
pytest -c MyTestGetXML.ini