可能使conftest仅适用于子目录吗?

时间:2018-07-27 18:13:31

标签: python pytest

我的布局看起来像这样:

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不支持我要尝试的操作。

0 个答案:

没有答案