Python 当test_script2.py需要一些命令行参数才能运行测试函数时,如何运行pytest.main(“-v test_script2.py”)?

Python 当test_script2.py需要一些命令行参数才能运行测试函数时,如何运行pytest.main(“-v test_script2.py”)?,python,command-line-arguments,pytest,Python,Command Line Arguments,Pytest,我有两个脚本。一个脚本解析所有参数并决定脚本的控制流。另一个脚本定义了所有测试函数,我想使用pytest模块调用“test_script2.py”并运行所有测试。但是在测试用例运行之前,我需要将一些参数传递给test_script2.py 我能想到的一种方法是写入一个文件,并让test_script2.py在该文件首次运行时读取该文件中的所有参数。如果你还有其他想法,请告诉我。谢谢你的帮助。谢谢大家! 如果我正确理解了您的问题,您可以创建一个conftest.py文件,并使用pytest\u a

我有两个脚本。一个脚本解析所有参数并决定脚本的控制流。另一个脚本定义了所有测试函数,我想使用pytest模块调用“test_script2.py”并运行所有测试。但是在测试用例运行之前,我需要将一些参数传递给test_script2.py


我能想到的一种方法是写入一个文件,并让test_script2.py在该文件首次运行时读取该文件中的所有参数。如果你还有其他想法,请告诉我。谢谢你的帮助。谢谢大家!

如果我正确理解了您的问题,您可以创建一个conftest.py文件,并使用pytest\u addoption hook向pytest添加选项:

现在py.test理解此选项,因此如果执行:

py.test --arg1 hey
然后,同一目录和以下目录中的测试可以访问如下选项:

def test_foo(request):
    arg1 = request.config.getoption('arg1')
    assert arg1 == "hey"
def test_foo(request):
    arg1 = request.config.getoption('arg1')
    assert arg1 == "hey"