如何解决pytest 获取 pytest.ini,无论运行目录如何
我正在看一本书,它告诉我使用 pytest.ini 来声明测试方法标记。
我发现,为了从测试发现搜索中排除根(项目)目录下的目录,我必须在该根目录中放置一个 pytest.ini。
当我从根目录运行 pytest
而没有关于测试发现的选择性位置时,标记是从 pytest.ini 中“找到”的。
但是,例如,当我运行 pytest tests/func
时,我得到“未知 pytest.mark.xxx - 这是一个错字吗?”对于所有这些标记。
如果我 cd 到 tests/func 并转到 pytest
,它们也找不到,我倾向于认为根目录中的 pytest.ini 根本没有“看到”。
事实上,实验表明,当我执行 pytest tests/func
时,pytest.ini 同样没有被“看到”。
目前我的 pytest.ini 看起来像这样:
[pytest]
addopts = --ignore=source_dld
markers =
smoke: marks tests as smoke (deselect with '-m "not smoke"')
get: bubble
如何使这些标记声明适用,并让我在项目根目录中的 pytest.ini 被“看到”,而不管测试在哪里进行?
编辑
关于 rootdir
的 a page in the docs 我试图理解。我特别注意
--rootdir 不能与 pytest.ini 中的 addopts 一起使用,因为 rootdir 已经用于查找 pytest.ini。
所以我尝试过这样的事情:
...\py_lib2>pytest -rs --rootdir=. tests/func
...\py_lib2>pytest -rs --rootdir="D:\My documents\software projects\EclipseWorkspace\py_lib2" tests/func
...“项目根目录”目录中的 pytest.ini(此处为 py_lib2)仍被忽略。 NB 操作系统是 W10。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。