我的布局看起来像这样:
tests/
a/
conftest.py
sub_a1/
testa1.py
...
sub_a2/
testa2.py
b/
conftest.py
sub_b1/
testb1.py
...
sub_b2/
testb2.py
c/
conftest.py
sub_c1/
testc1.py
...
sub_c2/
testc2.py
我在./b中的某些测试中有一个客户标记,并且在./a中的所有测试中都需要它。所以在./a/conftest.py
里面,我有这个:
def pytest_collection_modifyitems(config, items):
for item in items:
if not item.get_marker("my_custom_marker"):
item.add_marker(pytest.mark.my_custom_marker())
我遇到的问题是,我正在尝试像这样运行测试:
pytest -m 'my_custom_marker' .\a .\b --collect-only
以及。\ b中的所有测试也都获得了my_custom_marker。我以为conftest.py
仅在它的子目录上运行,但事实并非如此。
是否有正确的方法来做到这一点,或者Pytest不支持我要尝试的操作。