单元测试之pytest 生成测试报告

本文介绍了如何在单元测试中使用pytest和pytest-html模块来生成HTML格式的测试报告。首先,需要通过pip安装pytest和pytest-html。接着,遵循pytest的命名规则,确保测试类和方法以test开头。然后,通过安装的pytest-html模块,可以自动生成详细的测试报告,方便查看和分析测试结果。

前提:需要安装pytest和pytest-html(生成html测试报告)

 pip install pytest 和 pip install pytest-html  

 命名规则

 Pytest单元测试中的类名和方法名必须是以test开头,执行中只能找到test开头的类和方法,比unittest更加严谨

Pytest生成自带的html测试报告

需要下载pytest-html模块(python自带的生成测试报告模块

pip install pytest-html

运行指定模块指定类指定用例,冒号分割,并生成测试报告
import pytest
class TestClass(object):
    def setup(self):
        print("我是setup")

    @pytest.mark.skip()
    def test01(self):
        #断言判断测试用例
        assert 2 == 2
        print("我是test01")

    def test02(self):
        print("我是test02")
        assert 2 == 3
    def teardown(self):
        print("我是teardown")
#--html=./report.html 生成的测试报告  第二个是模块的名字
    if __name__ == '__main__':
          # pytest.main(["--html=./report.html","test_ceshi.py"])
#运行指定模块指定类指定用例,冒号分割,并生成测试报告
            pytest.main(["--html=./report.html","test_ceshi.py::TestClass::test01"])

 

 

import pytest #导入pyset
class TestClass(object):
    def setup(self):
        print("我是setup")

    @pytest.mark.skip()
    def test01(self):
        #断言判断测试用例
        assert 2 == 2
        print("我是test01")

    def test02(self):
        print("我是test02")
        assert 2 == 3
    def teardown(self):
        print("我是teardown")
#--html=./report.html 生成的测试报告  第二个是模块的名字
    if __name__ == '__main__':
          pytest.main(["--html=./report.html","test_ceshi.py"])

 

 

 生成测试报告

import pytest #导入pyset
class TestClass(object):
    def setup(self):
        print("我是setup")

    @pytest.mark.skip()
    def test01(self):
        #断言判断测试用例
        assert 2 == 2
        print("我是test01")
    def test02(self):
        print("我是test02")
        assert 2 == 3
    def teardown(self):
        print("我是teardown")
#--html=./report.html 生成的测试报告  第二个是模块的名字
    if __name__ == '__main__':
          pytest.main(["--html=./report.html","test_ceshi.py"])
#运行指定模块指定类指定用例,冒号分割,并生成测试报告
            # pytest.main(["--html=./report.html","test_ceshi.py::TestClass::test01"])

 

 

 

 

### Pytest生成测试报告的方法及工具推荐 #### 方法一:使用 `pytest-html` 插件 通过安装 `pytest-html` 插件,可以轻松生成HTML格式的测试报告。该插件支持Python 3.6及以上版本[^2]。以下是具体操作方法: 1. 安装依赖库: ```bash pip install pytest-html ``` 2. 使用以下命令运行测试并生成报告: ```bash pytest --html=report.html ``` 上述命令会在当前目录下生成名为 `report.html` 的测试报告文件[^3]。 --- #### 方法二:集成 Allure 报告工具 Allure 是一种功能强大的测试报告工具,能够提供更详细的交互式报告。它可以通过 `allure-pytest` 插件与 Pytest 结合使用[^1]。以下是实现步骤: 1. 安装必要的依赖项: ```bash pip install allure-pytest ``` 2. 编写测试脚本,在其中添加标记以便于分类和过滤测试用例。 3. 运行测试并将结果保存为 Allure 格式的中间数据: ```bash pytest --alluredir=./allure-results ``` 4. 将中间数据转换为 HTML 报告(需先安装 Allure 命令行工具): ```bash allure serve ./allure-results ``` --- #### 方法三:利用内置控制台输出 Pytest 默认提供了基于控制台的文本输出方式来汇总测试结果。虽然这种方式不生成独立的报告文件,但它适合快速查看测试状态。只需简单运行以下命令即可: ```bash pytest ``` --- #### 工具对比分析 | **工具名称** | **特点** | |------------------|--------------------------------------------------------------------------------------------| | `pytest-html` | 轻量化、易于上手;适用于简单的项目需求,能直接生成静态HTML报告 | | `allure-pytest` | 提供高度自定义化的交互式报告,适合复杂场景下的深入分析 | | 控制台输出 | 不需要额外配置或依赖,仅限基础信息展示,无法导出正式文档 | --- #### 推荐方案 对于小型项目或者初学者来说,建议优先考虑 `pytest-html`,因为它部署简便且能满足大多数日常开发中的需求。而对于追求更高可视化程度以及希望将其融入 CI/CD 流程的企业级应用,则更适合采用 `allure-pytest` 来构建详尽的测试报告体系。 ```python import pytest def test_example(): assert True ``` 以上代码片段展示了最基本的单元测试结构,实际运用时可根据业务逻辑扩展更多断言条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值