参数汇总

参数 说明
-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
2
3
4
5
6
7
8
9
10
11
12
import pytest

class TestRule:

@pytest.mark.p0
def test_1(self):
print("success")
assert 1 == 1

@pytest.mark.test
def test_2(self):
assert 1 == 2

(2)配置文件

在根目录创建 pytest.ini 文件

1
2
3
4
5
[pytest]
testpaths = ./
markers=
p0:高优先级
test:测试环境

1、默认无参数

在 pytest 后面没有跟任何参数的字符串都会认为是文件或者目录,会去这些指定的目录或文件中查找用例。示例如下:

image-20230501223204135

2、-v

-v :打印详细运行日志信息,一般在调试的时候加上这个参数,终端会打印出每条用例的详细日志信息。示例如下:

image-20230501223354878

3、-s

-s:显示标准输出,默认情况下你在用例中写的print或者log输出,都不会在测试结果中展示。当你的代码里面有 print 输出语句,如果想在运行结果中打印 print 输出的代码,在运行的时候可以添加 -s 参数,一般在调试的时候使用。示例如下:

image-20230501223430125

4、-q

-v相反,-q会输出更简化的信息。

image-20230501223557501

5、-m

-m :标记markers用于标记测试并分组,以便快速选中某些需要的用例并运行。比如我们在冒烟测试时运行其中某一部分用例,单元测试时运行另一部分用例。可以通过@pytest.mark.标记名来标记这些需要的用例,运行时用-m 标记就能快速选出这部分用例运行。示例如下,运行标记为 p0 的用例:

image-20230501224710097

6、-k

-k可以让你使用表达式来指定希望运行的测试用例。可以用 andornot 连接符,模糊匹配文件名、类名和函数名。

image-20230501224755220

注意:-k 匹配顺序 ,包名称(文件夹) > 模块名(文件) > 类名 > 方法名。

扩展示例:pytest -k "str or Add and not list" ,匹配名称包含 str 或者 Add 且 不包含 list 的文件、类、及函数。

环境二

(1)创建测试用例

创建测试用例,命名为 test_one.py

1
2
3
4
5
6
7
8
def test_1():
assert 1 == 2

def test_2():
assert 1 == 2

def test_3():
assert 1 == 2

以下参数均使用环境二

7、-x 或 --exitfirst

-x --exitfirst:遇到用例失败立即停止运行,一旦发现有失败的用例即中止运行

1
pytest -x .\test_one.py

输出结果示例如下:第一条用例失败后停止运行

image-20230504153930735

8、--maxfail

--maxfail :用例失败个数达到阀值停止运行,用法 --maxfail=[num]

1
pytest --maxfail=2 .\test_one.py

输出结果示例如下:失败2条用例后停止运行

image-20230504154136275

9、--reruns

–reruns:失败重跑,需要安装 pytest-rerunfailures 插件,安装命令如下:

1
pip install pytest-rerunfailures

用法: --reruns=[num] ,num 为失败用例重跑的次数

1
pytest --reruns=3 .\test_one.py

输出结果示例如下:失败用例重新运行3次

image-20230504154817754

10、--collect-only

--collect-only:此参数展示当前 pytest 能找到的用例,也就是说直接根据当前参数配置,能找到的用例列表。用于检验运行的用例是否符合你的预期。

image-20230504155748508

注意,这里只是列出会运行的用例,但是不会实际运行。

11、--html

--html :用于用例执行完毕后,生成 html 测试报告,需要安装 pytest-html 插件。安装命令如下:

1
pip install pytest-html 

用以下命令运行测试用例,并生成测试报告。

1
pytest --html=./report.html .\test_one.py

生成的测试报告如下所示:

image-20230504164613987