找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

597

积分

0

好友

76

主题
发表于 昨天 02:57 | 查看: 2| 回复: 0

在编写自动化测试用例时,我们常常需要对同一个测试点进行多次验证。传统的 assert 语句一旦失败便会立即终止当前测试函数的执行,导致后续的断言无法运行,这不利于我们收集完整的测试失败信息。pytest-assume 插件正是为了解决这一问题而生,它允许在单个测试用例中执行多个断言,即使中间有断言失败,后续的断言仍会继续执行。

应用场景

  • 多重校验:对同一测试对象或业务逻辑,需要执行多个独立的断言。
  • 收集完整失败信息:即使某个断言失败,也希望继续执行剩余断言,以获取所有不通过的点,便于一次性分析和修复。

插件安装

通过 pip 即可轻松安装 pytest-assume 插件:

pip install pytest-assume

pytest-assume安装成功提示

核心差异:assert vs pytest.assume

  • assert:某个断言失败后,同一函数内其后的代码(包括其他断言)将不会被执行。
  • pytest.assume:某个断言失败后,同一函数内其后的 pytest.assume 断言依然会继续执行,直到该测试函数结束。

实战对比

示例一:使用传统 assert

import pytest

def test_using_assert():
    assert 1 == 1  # 通过
    assert 1 == 2  # 失败,此后的代码不会执行
    assert 2 == 2  # 不会被执行

执行结果:第二个断言失败后,测试立即停止,第三个断言未被评估。

assert断言失败后终止

示例二:使用 pytest.assume

这是提升自动化测试效率的有效手段。

import pytest

def test_using_assume():
    pytest.assume(1 == 1)  # 通过
    pytest.assume(1 == 2)  # 失败,但继续执行
    pytest.assume(2 == 3)  # 失败,继续执行并记录

执行结果:所有三个断言都被依次执行,并在最终报告中汇总显示失败信息。

pytest.assume执行所有断言

通过 pytest-assume,测试者可以在一次执行中验证多个条件,并得到完整的校验结果报告,大大提升了在复杂Python测试场景下的排错效率。




上一篇:Modbus通信协议入门指南:RTU/ASCII/TCP核心概念与实战解析
下一篇:Spring Boot API版本控制实战:策略模式与自定义注解优雅兼容老版本
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-11 02:46 , Processed in 0.078513 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表