三个环境,用的同一套脚本,就参数不一样,想在运行pytest的时候传入参数指定运行哪个环境,怎么将传入的参数设置为全局变量供后面用例使用呀

在pytest中,可以使用命令行参数来传递参数并设置为全局变量供后续的用例使用。下面是一个简单的示例:

  1. 在你的测试项目中创建一个conftest.py文件,这是pytest的一个特殊文件,可以在其中定义全局变量和钩子函数等。

  2. 在conftest.py文件中,使用pytest的config模块来接收并获取命令行参数,并将其设置为全局变量。示例代码如下:

import pytest

def pytest_addoption(parser):
    parser.addoption("--env", action="store", default="dev", help="Specify the test environment")

@pytest.fixture(scope="session")
def env(request):
    return request.config.getoption("--env")
  1. 在你的测试用例中,需要使用这个全局变量时,只需在传入参数时调用该fixture即可。示例代码如下:
def test_example(env):
    if env == "dev":
        # 在dev环境下运行的代码逻辑
        pass
    elif env == "prod":
        # 在prod环境下运行的代码逻辑
        pass
    else:
        # 处理其他环境的代码逻辑
        pass
  1. 在命令行运行pytest时,通过–env参数指定要运行的环境。例如,运行以下命令来指定运行prod环境的测试用例:
pytest --env prod

这样,在所有的测试用例中都可以通过env这个全局变量来获取到传入的参数值,根据不同的环境参数执行相应的代码逻辑。

希望以上内容对你有帮助,如果有任何问题,请随时提问。