pytest(十)--命令行传参

前言

命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在cmd执行"pytest --html=report.html",这里面的"--html=report.html"就是从命令行传入的参数。对应的参数名称是html,参数值是report.html.

conftest配置参数

1.首先需要在conftest.py添加命令行选项,命令行传入参数"--cmdopt",用例如果需要到从命令行传入的参数,就调用cmdopt函数:

#conftest.py
import pytest
def pytest_addoption(parser):
    parser.addoption(
        "--cmdopt",action="store",default="type1",
        help="my option:type1 or type2"
    )
@pytest.fixture
def cmdopt(request):
    return request.config.getoption("--cmdopt")

2.测试用例编写案例

#test_answers.py
import pytest
def test_answer(cmdopt):
    if cmdopt=="type1":
        print("first")
    elif cmdopt=="type2":
        print("second")
    assert 0 #to see what was printed
if __name__=="__main__":
    #pytest.main(["-s","test_case1.py"])
    pytest.main(["-s","test_answers.py"])#这两种写法,执行结果是一样的  

 cmd打开,输入指令启动,也可以在pycharm里面右键执行上面代码

pytest -s test_answers.py

运行结果;可以看到结果显示Ffirst,F代表Fail,first就是type1时的输出。

 带参数启动

1.如果不带参数执行,那么传默认的default=“type1”,接下来在命令行带上参数去执行

pytest -s test_answers.py --cmdopt=type2

 运行结果:

猜你喜欢

转载自www.cnblogs.com/canglongdao/p/13399589.html