pytest不接受自定义参数值

时间:2019-05-14 17:04:30

标签: python python-3.x pytest

我正在尝试使用自定义输入参数“ --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内部发生的,不确定是否重要。

1 个答案:

答案 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