我想要使用自定义命令行参数的方式,向 pytest 脚本传参。

首先我在 conftest.py 里通过 pytest_addoption 函数用来定义命令行的参数,country 为自定义的 fixture,用来获取从命令行传进来的参数值。


import pytest


def pytest_addoption(parser):
    parser.addoption("--country", action="store", default="China",
                     help="set country")


@pytest.fixture()
def country(request):
    return request.config.getoption("--country")

然后在 test.py 中通过 pytest.main 运行

import pytest

def test_demo(country):
    print("当前所在的国家:", country)


if __name__ == '__main__':

    pytest.main(["-s --country=中国"])

执行结果如下:发现自定义命令行参数未生效

请问大佬,这种问题怎么解决啊?


↙↙↙阅读原文可查看相关链接,并与作者交流