Pytest学习笔记(18)-allure之清空测试报告

本文介绍了在使用Pytest和Allure生成测试报告时如何处理历史记录的问题。当报告路径相同或用例名称改变时,历史用例记录会累加到新的报告中。通过使用`--clean-alluredir`命令行参数,可以在生成报告前清空历史执行记录,确保报告只包含最新执行的用例信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
  • 使用allure生成测试报告,当报告存放路径相同时,报告数据是会累加,会导致测试报告内展示了之前运行的用例情况

  • 同理,当你的用例名称修改后,再次执行后,也会保留上一次的用例运行记录

不同用例文件,报告路径相同

准备 test_report_1.pytest_report_2.py 两个用例文件,内容如下:

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

"""
    __File__   = test_report_1.py
    __Project__= _JAuto-Interface
    __Time__   = 2022-02-23 15:43:15
    __Author__ = 黎晟
"""


def test_case_1_1():
    """测试用例-1-1"""
    assert 1 == 1


def test_case_1_2():
    """测试用例-1-2"""
    assert 1 == 1

                
### 安装 `pytest` 及其插件时可能遇到的问题及解决方案 在安装 `pytest` 和相关插件的过程中,可能会因为依赖冲突、环境配置不一致或其他原因导致报错。以下是针对这些常见问题的分析和解决方法: #### 1. **依赖版本冲突** 如果在执行命令 `pip install pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures allure-pytest` 时出现错误提示,可能是某些包之间的版本存在兼容性问题。 - 验证当前 Python 的版本是否满足各插件的要求[^2]。例如,部分插件可能仅支持特定范围内的 Python 版本。 - 使用以下命令逐一升级 pip 并重新尝试安装: ```bash python -m pip install --upgrade pip setuptools wheel ``` #### 2. **网络连接或镜像源问题** 有时由于国内网络的原因,可能导致无法正常访问 PyPI 源,从而引发超时或下载失败等问题。 - 切换至国内镜像源(如阿里云或清华大学开源软件镜像站),并重试安装: ```bash pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures allure-pytest ``` #### 3. **已存在的旧版本干扰** 当环境中已经存在较老版本的库时,新版本的安装可能会受到阻碍。 - 卸载现有的 `pytest` 及其关联插件后再重新安装: ```bash pip uninstall pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures allure-pytest pip install pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures allure-pytest ``` #### 4. **具体插件的特殊需求** 不同插件可能存在额外的依赖项或者特殊的安装条件。 - 对于 `allure-pytest` 插件,需确认 JAVA 环境变量 `JAVA_HOME` 已正确定义[^2]。可以通过以下方式验证 Java 是否可用以及路径设置是否正确: ```bash echo %JAVA_HOME% java -version ``` - 如果未定义,则需要手动指定 JDK 路径,并将其加入系统的环境变量中。 #### 5. **日志排查与调试** 通过增加 `-v` 参数查看详细的安装过程中的日志信息,有助于定位具体的错误位置。 - 执行带详细输出的日志记录命令: ```bash pip install -v pytest pytest-html pytest-xdist pytest-ordering pytest-rerunfailures allure-pytest ``` --- ### 示例代码片段:自定义 conftest.py 文件结构 为了更好地管理测试框架的行为,在项目根目录下创建 `conftest.py` 文件,其中可包含钩子函数用于定制化操作[^4]。如下所示是一个简单的实现例子: ```python # conftest.py from typing import Optional import pytest def pytest_collection_modifyitems(session, config, items: list): """修改收集到的测试用例名称编码""" for item in items: item.name = item.name.encode('utf-8').decode('unicode-escape') item._nodeid = item.nodeid.encode('utf-8').decode('unicode-escape') def pytest_runtest_setup(item: "Item") -> None: """每次测试前调用此钩子打印 setup 日志""" print('hook : setup') def pytest_runtest_teardown(item: "Item", nextitem: Optional["Item"]) -> None: """每次测试结束后调用此钩子打印 teardown 日志""" print('hook : teardown') ``` --- ### 总结 以上提供了关于如何处理 `pytest` 及其插件安装过程中可能出现的各种问题的具体措施。每一步都旨在帮助开发者快速找到根本原因并加以修复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值