pytest测试用例的运行方式

1.主函数模式

(1) 运行所有 : pytest main()
(2) 指定模块 : pytest main(['-vs','模块名.py'])
(3) 指定目录 : pytest main(['-vs','./目录名'])
(4) 通过nodeid指定用例运行 : nodeid由模块名,分隔符,类名,方法名,函数名组成。
        pytest main(['-vs', '模块名.py::方法名'])
        pytest main(['-vs','模块名.py::类名::方法名'])

2.命令行模式

(1) 运行所有 : pytest
(2) 指定模块 : pytest -vs 模块名.py
(3) 指定目录 : pytest -vs ./目录名
(4) 指定目录 : pytest -vs 模块名.py::类名::方法名

参数详解:

-s : 表示输出调试信息,包括print打印的信息

-v : 显示更详细的信息

-vs : 这两个参数一起用

-n : 支持多线程或者分布式运行测试用例。
        如:pytest -vs 模块名.py -n 2 或者 pytest main(['-vs','模块名.py','-n=2'])

--reruns : 重跑次数 :失败用例重跑


-x : 表示只要要一个用例报错,那么测试停止,

--maxfail=2 : 出现两个用例失败就停止。

-k : 根据测试用例的部分字符串指定测试用例。如:pytest -k "aaa" (即执行测试名包含aaa的测试用例)

--html ./report/report.html : 再report目录生成文件名为report的html测试报告。

3.通过读取pytest.ini全局配罟文件运行

pytest.ini这个文件它是pytest单元测试框架的核心配置文件。

(1) 位置:一般放在项目的根目录

(2) 编码:必须是ANSI,可以使用notpad++修改编码格式。

(3)作用:改变pvtest默认的行为。

(4) 运行的规则;不管是主函数的模式运行,命令行模式运行,都会去读取这个配置文件。

[pytest]
addopts = -vs #命令行的参数,用空格分隔 
testpaths = ./testcase #测试用例的路径 (如:根目录的testcase目录下) 
python_files = test_*.py #模块名的规则 
python classes = Test* #类名的规则 
python_functions = test #方法名的规则 
markers=
    smoke:冒烟用例
    usermanage用户管理模块 
    productmanage商品管理模块

        注:分组执行(冒烟、分模块执行、分接口和web执行)

        smoke:冒烟用例,分布在各个模块里面

        pytest -m "smoke"

        pytest -m "smoke or usermanage or productmanage"

你可能感兴趣的:(单元测试)