我有以下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
并使其起作用? 最佳答案
否。请参考pytest_addoption
挂钩文档:
注意:
由于pytest discovers plugins during startup的方式,此功能只能在位于测试根目录的插件或conftest.py
文件中实现。
关于python - 如何将parser.addoption放在测试模块中,而不是conftest.py中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60009252/