pytest 常用测试报告类型

本文介绍了pytest框架生成的多种测试报告类型,包括allure报告、resultlog文件、JunitXML文件、测试用例URL和HTML报告。详细阐述了生成过程及其用途,如方便持续集成工具读取和展示测试结果。此外,提供了学习软件测试的资源分享。

先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告

1.allure测试报告

关于allure报告参见先前的一篇博文: https://www.cnblogs.com/feng0815/p/13792188.html ,这里不再赘述

2.生成resultlog文件

#!/usr/bin/python
 -*- coding: UTF-8 -*-
"""
@author:chenshifeng
@file:test_report.py
@time:2021/01/27
"""
class TestReport:

    def test_one(self):
        x = "shifeng"
        assert "feng" in x

    def test_two(self):
        x = "hello"
        assert x == "hi"

执行命令:

pytest test_report.py  --resultlog=./resultlog.txt

指定当前路径下生成resultlog.txt文件,打开文件,内容如下:

. reportdemo/test_report.py::TestReport::test_one
F reportdemo/test_report.py::TestReport::test_two
 self = <test_report.TestReport object at 0x7fd9c0a3eac0>
 
     def test_two(self):
         x = "hello"
 >       assert x == "hi"
 E       AssertionError: assert 'hello' == 'hi'
 E         - hi
 E         + hello
<think>嗯,用户想了解pytest常用的参数,我得先回忆一下自己用pytest时的常见命令。首先,pytest的参数挺多的,得挑那些最常用的,比如运行测试、筛选测试用例、输出报告之类的。可能用户是刚开始用pytest,需要知道基本的参数来提高效率。 首先想到的是运行测试的基本命令,比如`pytest`,但用户要的是参数,可能需要更具体的。比如`-v`参数,用来显示详细的信息,每个测试用例的结果都会列出来,这对查看具体哪个用例失败很有帮助。还有`-q`,安静模式,可能适合在自动化环境中使用,输出更简洁。 然后是选择特定测试用例的参数,比如`-k`后面接表达式,用来筛选测试名匹配的用例。比如用户想只运行包含"login"的测试,可以用`-k login`。另外`-m`用来标记测试,比如标记为smoke的测试可以用`-m smoke`来只运行这部分。 接着是失败后停止的参数,`-x`会在第一次失败后停止,这对调试很有用,避免一直跑完所有用例。而`--maxfail=num`可以设置允许的最大失败次数,超过就停止。 输出报告方面,`--lf`或`--last-failed`只重新运行上次失败的用例,`--ff`或`--failed-first`先运行失败的,再跑其他的。这两个参数在修复bug时特别有用,节省时间。 覆盖率的话,可能用户需要生成报告,但pytest本身不处理覆盖率,需要配合pytest-cov插件,所以可能需要提到`--cov`参数,比如`--cov=myproj`来检查代码覆盖率。 还有并行运行测试的参数`-n`,需要pytest-xdist插件,比如`-n 4`用4个进程并行跑测试,加快速度。 调试相关的参数,比如`--pdb`在测试失败时进入pdb调试,或者`--trace`在开始时就进入调试。这些对开发阶段排查问题有帮助。 另外,输出结果的格式,比如`-rA`显示所有测试结果的摘要,或者`--junitxml=path`生成JUnit格式的报告,方便持续集成工具使用。 还有可能用户需要知道如何指定测试目录或文件,比如直接加路径`pytest tests/`,或者某个文件`test_module.py`。不过这些可能不算参数,而是命令的一部分,但用户可能会混淆。 需要确保每个参数都正确,比如`-s`允许输出打印信息,`--disable-warnings`忽略警告。这些也是常用的,特别是当测试中有大量警告干扰时。 总结下来,应该分门别类,把参数按功能分类,比如运行控制、筛选用例、输出报告、调试等,这样用户更容易找到需要的参数。同时,可能需要给出每个参数的简单示例,说明用法和适用场景。 另外,用户可能不知道某些参数需要插件支持,比如`-n`需要pytest-xdist,`--cov`需要pytest-cov,这时候应该提醒他们安装相应的插件,但用户的问题可能只关注参数本身,所以可能简要提到需要插件即可。 最后,检查是否有遗漏的重要参数,比如`--collect-only`用来收集用例但不执行,或者`--durations=num`显示最慢的测试用例,这些可能对性能优化有帮助。不过常用程度可能不如前面提到的那些,所以是否包含取决于用户的常见需求。 总之,组织信息时要清晰,分点列出,每个参数简要说明作用和示例,确保用户能快速查阅和使用。</think>以下是 pytest 常用参数的分类整理及说明,帮助您更高效地使用 pytest 进行测试: --- ### **一、基础运行控制** 1. **`-v` / `--verbose`** - 显示详细输出,包括每个测试用例的名称和结果 - 示例:`pytest -v` 2. **`-q` / `--quiet`** - 静默模式,仅显示最终结果摘要 - 示例:`pytest -q` 3. **`-s`** - 允许输出打印内容(默认情况下 pytest 会捕获标准输出) - 示例:`pytest -s` --- ### **二、测试用例筛选** 1. **`-k <表达式>`** - 运行名称匹配表达式的测试用例(支持逻辑运算符) - 示例:`pytest -k "login and not admin"` 2. **`-m <标记>`** - 运行特定标记的测试用例(需提前用 `@pytest.mark.<标记>` 装饰) - 示例:`pytest -m "smoke"` 3. **`--ignore <路径>`** - 忽略指定路径的测试 - 示例:`pytest --ignore tests/legacy/` --- ### **三、失败控制与重运行** 1. **`-x`** - 遇到第一个失败用例后立即停止测试 - 示例:`pytest -x` 2. **`--maxfail=<num>`** - 允许最多失败 `num` 次后停止测试 - 示例:`pytest --maxfail=3` 3. **`--lf` / `--last-failed`** - 仅重新运行上次失败的用例 - 示例:`pytest --lf` 4. **`--ff` / `--failed-first`** - 先运行上次失败的用例,再运行其他用例 - 示例:`pytest --ff` --- ### **四、测试报告与输出** 1. **`-r <标识>`** - 显示指定类型测试结果摘要(如 `-rA` 显示全部) - 示例:`pytest -rA` 2. **`--junitxml=<path>`** - 生成 JUnit 格式的 XML 报告(适用于 CI/CD 集成) - 示例:`pytest --junitxml=report.xml` 3. **`--html=<path>`** - 生成 HTML 报告(需安装 `pytest-html`) - 示例:`pytest --html=report.html` --- ### **五、调试与诊断** 1. **`--pdb`** - 在测试失败时自动进入调试模式(pdb) - 示例:`pytest --pdb` 2. **`--trace`** - 在每个测试用例执行前进入调试模式 - 示例:`pytest --trace` --- ### **六、并行测试** 1. **`-n <num>`** - 使用多进程并行运行测试(需安装 `pytest-xdist`) - 示例:`pytest -n 4`(启动 4 个进程) --- ### **七、覆盖率分析** 1. **`--cov=<path>`** - 生成代码覆盖率报告(需安装 `pytest-cov`) - 示例:`pytest --cov=src/` --- ### **八、其他实用参数** 1. **`--version`** - 显示 pytest 版本信息 2. **`--collect-only`** - 仅收集测试用例但不执行(用于检查用例列表) 3. **`--disable-warnings`** - 忽略警告信息 --- ### **示例组合使用** ```bash # 并行运行标记为 "smoke" 的测试,生成 HTML 报告,并忽略警告 pytest -m smoke -n 2 --html=report.html --disable-warnings ``` 根据需求灵活组合参数,可显著提升测试效率!
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值