我有以下
conftest.py
:
def pytest_addoption(parser):
parser.addoption('--sopt', action='store', default=None, help='Source Data Storage')
my_test.py
:
@pytest.fixture(scope='module', autouse=True)
def sopt(pytestconfig):
return pytestconfig.getoption('sopt')
def test_mtest(sopt):
//pytest code
运行此测试时,它可以正常运行python3 -m pytest --sopt=aaaaa
,但是移动时
def pytest_addoption(parser):
parser.addoption('--sopt', action='store', default=None, help='Source Data Storage')
从conftest.py
到my_test.py
,它不起作用,并因以下错误而失败:
ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...]
__main__.py: error: unrecognized arguments: --sopt=aaaaa
我不喜欢只有2行代码的单独文件。
是否可以将parser.addoption
中的conftest.py
放入my_test.py
中并使其正常工作?
答案 0 :(得分:2)
不。引用pytest_addoption
挂钩文档:
注意:
由于pytest discovers plugins during startup的方式,此功能只能在位于测试根目录的插件或
conftest.py
文件中实现。