我有以下

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.pymy_test.py无效,并失败,并显示以下错误:

ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...]
__main__.py: error: unrecognized arguments: --sopt=aaaaa


我不喜欢只有2行代码的单独文件。

有没有办法将parser.addoptionconftest.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/

10-12 21:26