我正在尝试使用自定义输入参数“ --trustkey_jks”运行pytest。
像这样运行:
sh-4.2$ pytest -m test_e2e.py --trustkey_jks somekey
ERROR: usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: argument --trustkey_jks: expected one argument
也尝试这样:
sh-4.2$ py.test --trustkey_jks somekey test_e2e.py
ERROR: usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: argument --trustkey_jks: expected one argument
可以省略文件名,让pytest收集任何测试:
sh-4.2$ py.test --trustkey_jks somekey
ERROR: usage: py.test [options] [file_or_dir] [file_or_dir] [...]
py.test: error: argument --trustkey_jks: expected one argument
我的conftest.py(与tests_e2e.py相同级别):
# conftest.py
def pytest_addoption(parser):
parser.addoption("--trustkey_jks", action="store")
@pytest.fixture()
def trustkey_jks(request):
return request.config.getoption("--trustkey_jks")
据我了解,pytest无法解析输入参数。 感谢任何帮助。
注意:以上是在Openshift POD内部发生的,不确定是否重要。
答案 0 :(得分:0)
我可以在最后复制您的问题,并找到根本原因。问题是pytest功能的 conftest.py 。
您需要在conftest.py中添加所有parser.add选项,因为默认情况下会从pytest的conftest中加载它。并且,如果要在python文件中添加命令行参数(不创建conftest.py),请使用以下代码段:-
parser = argparse.ArgumentParser()
parser.add_argument("--trustkey_jks", action="store_true")
另外,请参考conftest.py功能:-https://docs.pytest.org/en/latest/example/simple.html。