首页 > 解决方案 > pytest:如何定义强制命令行参数

问题描述

如何定义自定义命令行参数,并在 pytest 中强制使用它们?例如,我想要这样的东西: pytest -s sample.py --test_suite='some_value' 并且命令行参数“--test_suite”必须是强制性的。如果它丢失了,我想抛出一个“帮助”之类的消息,上面写着“输入要执行的 test_suite”

这是我的代码:

@pytest.fixture
def testsuite(request):
test_suite = request.config.getoption('--test_suite')
return test_suite

def pytest_addoption(parser):
parser.addoption("--test_suite",action="store",default="default_suite",
                 help="Enter the test suite you want to execute."
                      "Ex. --test_suite=default_suite"
                      "If nothing is selected, default_suite tests will be run.")   

这种方法使命令行参数成为可选的。但我想让它们成为强制性的。

标签: pythonpytest

解决方案


要使用 将命令行参数标记为强制参数addoption,请将required=True其作为关键字参数添加到方法调用中


推荐阅读