pytest 常见运行参数
参数汇总
参数 | 说明 |
---|---|
-v | 可以输出用例更加详细的执行信息 |
-s | 输出我们用例中的调试信息 |
-q | 简化控制台输出 |
-m | 执行特定的测试用例 |
-k | 执行用例包含 “关键词的用例” |
-x 或 --exitfirst | 遇到失败停止 |
--maxfail=num | 遇到 num 次失败就停止 |
-l 或 --showlocals | 显示变量 |
--collect-only | 列出执行用例 |
--html=path | 输出 html 报告到 path 路径 |
注意:这里只列出常用参数,更多完整参数使用 pytest -h
查看。
环境一
(1)测试用例
在根目录创建测试用例,命名为 test_one.py
1 | import pytest |
(2)配置文件
在根目录创建 pytest.ini
文件
1 | [pytest] |
1、默认无参数
在 pytest 后面没有跟任何参数的字符串都会认为是文件或者目录,会去这些指定的目录或文件中查找用例。示例如下:
2、-v
-v
:打印详细运行日志信息,一般在调试的时候加上这个参数,终端会打印出每条用例的详细日志信息。示例如下:
3、-s
-s
:显示标准输出,默认情况下你在用例中写的print
或者log
输出,都不会在测试结果中展示。当你的代码里面有 print
输出语句,如果想在运行结果中打印 print
输出的代码,在运行的时候可以添加 -s
参数,一般在调试的时候使用。示例如下:
4、-q
与-v
相反,-q
会输出更简化的信息。
5、-m
-m
:标记markers
用于标记测试并分组,以便快速选中某些需要的用例并运行。比如我们在冒烟测试时运行其中某一部分用例,单元测试时运行另一部分用例。可以通过@pytest.mark.标记名
来标记这些需要的用例,运行时用-m 标记
就能快速选出这部分用例运行。示例如下,运行标记为 p0
的用例:
6、-k
-k
可以让你使用表达式来指定希望运行的测试用例。可以用 and
,or
,not
连接符,模糊匹配文件名、类名和函数名。
注意:-k
匹配顺序 ,包名称(文件夹) > 模块名(文件) > 类名 > 方法名。
扩展示例:pytest -k "str or Add and not list"
,匹配名称包含 str 或者 Add 且 不包含 list 的文件、类、及函数。
环境二
(1)创建测试用例
创建测试用例,命名为 test_one.py
1 | def test_1(): |
以下参数均使用环境二
7、-x 或 --exitfirst
-x
或 --exitfirst
:遇到用例失败立即停止运行,一旦发现有失败的用例即中止运行
1 | pytest -x .\test_one.py |
输出结果示例如下:第一条用例失败后停止运行
8、--maxfail
--maxfail
:用例失败个数达到阀值停止运行,用法 --maxfail=[num]
1 | pytest --maxfail=2 .\test_one.py |
输出结果示例如下:失败2条用例后停止运行
9、--reruns
–reruns:失败重跑,需要安装 pytest-rerunfailures
插件,安装命令如下:
1 | pip install pytest-rerunfailures |
用法: --reruns=[num]
,num 为失败用例重跑的次数
1 | pytest --reruns=3 .\test_one.py |
输出结果示例如下:失败用例重新运行3次
10、--collect-only
--collect-only
:此参数展示当前 pytest 能找到的用例,也就是说直接根据当前参数配置,能找到的用例列表。用于检验运行的用例是否符合你的预期。
注意,这里只是列出会运行的用例,但是不会实际运行。
11、--html
--html
:用于用例执行完毕后,生成 html 测试报告,需要安装 pytest-html
插件。安装命令如下:
1 | pip install pytest-html |
用以下命令运行测试用例,并生成测试报告。
1 | pytest --html=./report.html .\test_one.py |
生成的测试报告如下所示: