鉴于这是我的测试代码:
# conftest.py
@pytest.fixture(scope='function')
def fixA(request)
pass
@pytest.fixture(scope='function')
def fixB(request)
pass
# test_my.py
pytestmark = pytest.mark.usefixtures("fixA")
def test_something():
pass
我希望能够fixB()
fixA()
使用fixB()
,使用[pytest]
usefixtures=fixB
很容易,我可以像这样添加pytest.ini:
fixA
但我可以从配置的命令行中弄清楚如何禁用fixA
。
到目前为止,我的用例是什么?
(实际原因,我希望{{1}}在我们的CI系统中工作,但对于日常工作,我需要人们能够在他们的桌面上禁用它)
答案 0 :(得分:0)
我找到了一种方法,(在调试器中对抗之后,py.test文档并没有明确说明如何选择灯具)
将此添加到conftest.py中:
# conftest.py
def pytest_runtest_setup(item):
for fixture in item.config.getini('ignorefixtures'):
del item._fixtureinfo.name2fixturedefs[fixture]
item._fixtureinfo.names_closure.remove(fixture)
def pytest_addoption(parser):
parser.addini('ignorefixtures', 'fixtures to ignore', 'linelist')
然后我可以把它放在pytest.ini中:
[pytest]
usefixtures=fixB
ignorefixtures=fixA
我也会在命令行中对这些事情很好......