pytest多重断言的实现

当我们写用例断言时,往往一个断言结果是不够的,所以需要加入多重断言,而多重断言,当断言中间出现断言结果False时,会中断后续的断言执行,会导致测试用例执行结果的准确性不高
使用pytest框架的插件pytest-assume, 实现用例执行时,其中一个断言失败后,执行后续的断言

安装:pip install pytest-assume

以下为使用示例:

import pytest
from pytest_assume.plugin import assume

class TestTwo:
    def test001(self):
        with assume:
            assert True
        with assume:
            assert 1 == 2

    def test002(self):
        assert 1 == 1

if __name__ == '__main__':
    pytest.main(['-v', 'test_002.py'])

我们很容易在以下信息中找出相应的日志信息:

在行有E标记的信息中,我们可以清晰看到提示 pytest_assume.plugin.FailedAssumption: 1 Failed Assumptions

collecting ... collected 2 items
 
test_002.py::TestTwo::test001 FAILED                                     [ 50%]
test_002.py::TestTwo::test002 PASSED                                     [100%]
 
================================== FAILURES ===================================
_______________________________ TestTwo.test001 _______________________________
 
self = <test_002.TestTwo object at 0x000001B24B284C40>
 
    def test001(self):
        with assume:
            assert True
        with assume:
>           assert 1 == 2
E           pytest_assume.plugin.FailedAssumption: 
E           1 Failed Assumptions:
E           
E           test_002.py:10: AssumptionFailure
E           >>    assert 1 == 2
E           AssertionError: assert 1 == 2
E             +1
E             -2
 
test_002.py:10: FailedAssumption
============================== warnings summary ===============================
D:\Python3.9.10\lib\site-packages\_pytest\config\__init__.py:1126
  D:\Python3.9.10\lib\site-packages\_pytest\config\__init__.py:1126: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: pytest_assume
    self._mark_plugins_for_rewrite(hook)
 
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ===========================
FAILED test_002.py::TestTwo::test001 - pytest_assume.plugin.FailedAssumption: 
=================== 1 failed, 1 passed, 1 warning in 0.19s ====================
 
进程已结束,退出代码 0

到此这篇关于pytest多重断言的实现的文章就介绍到这了,更多相关pytest多重断言内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • pytest之assert断言的具体使用

    背景 本文总结使用pytest编写自动化测试时常用的assert断言. 说明 本文将从以下几点做总结: 为测试结果作断言 为断言不通过的结果添加说明信息 为预期异常作断言 为失败断言自定义说明信息 为测试结果作断言 在断言方面,pytest框架比其他类似的框架(比如unittest)更加简洁,易用,我想这是我选择pytest作为自动化测试框架之一的原因之一. pytest的assert断言关键字支持使用python内置的assert表达式.可以理解为pytest的断言就是直接使用python自带

  • Pytest断言的具体使用

    目录 assert断言方法 异常断言Excepiton 检查断言装饰器 Pytest使用的断言是使用python内置的断言assert.Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常.即pytest测试结果为False的断言为断言失败即测试用例执行失败,反之为断言成功即测试用例执行成功. 断言使用场景: 为测试结果作断言 为断言不通过的结果添加说明信息 为预期异常作断言 为失败断言作自定义说明信息 assert断言方法 assert关键字后面接表

  • pytest中文文档之编写断言

    编写断言 使用assert编写断言 pytest允许你使用python标准的assert表达式写断言: 例如,你可以这样做: # test_sample.py def func(x): return x + 1 def test_sample(): assert func(3) == 5 如果这个断言失败,你会看到func(3)实际的返回值: /d/Personal Files/Python/pytest-chinese-doc/src (5.1.2) λ pytest test_sample.

  • pytest多重断言的实现

    当我们写用例断言时,往往一个断言结果是不够的,所以需要加入多重断言,而多重断言,当断言中间出现断言结果False时,会中断后续的断言执行,会导致测试用例执行结果的准确性不高使用pytest框架的插件pytest-assume, 实现用例执行时,其中一个断言失败后,执行后续的断言 安装:pip install pytest-assume 以下为使用示例: import pytest from pytest_assume.plugin import assume class TestTwo: def

  • python中Pytest常用的插件

    目录 前言 1. 用例依赖 2. 失败重跑 3. 指定用例执行顺序 4. 分布式运行 5. 多重断言 6. 小结 前言 除了框架本身提供的功能外,Pytest还支持上百种第三方插件,良好的扩展性可以更好的满足大家在用例设计时的不同需求.本文将为大家详细介绍下面5项常用的插件. 1. 用例依赖 编写用例的时候,我们会注意用例之间的独立性,但部分用例之间确实存在关联,无法做到彻底独立,那么我们就可以通过使用插件pytest-dependency设置用例之间的依赖关系.当用例A依赖于用例B时,若用例B

  • python单元测试框架pytest的使用示例

    首先祝大家国庆节日快乐,这个假期因为我老婆要考注会,我也跟着天天去图书馆学了几天,学习的感觉还是非常不错的,这是一篇总结. 这篇博客准备讲解一下pytest测试框架,这个框架是当前最流行的python语言最流行的单测框架,不掌握可不行,首先这个框架属于第三方模块,需要通过pip安装即可 pip install pytest 下面我们进入正题 一.介绍pytest的运行规则 1.测试文件的名称必须要以test_*.py的格式,或者*_test.py的格式 2.测试类的名称必须要以Test开头,且这

  • Pytest 使用简介

    前言 最近在听极客时间的课程,里面的讲师极力推崇 pytest 框架,鄙视 unittest 框架,哈哈!然后查了些资料,发现了一条 python 鄙视链:pytest 鄙视 > unittest 鄙视 >robotframework . pytest 是 python 的第三方单元测试框架,比自带 unittest 更简洁和高效,支持315种以上的插件,同时兼容 unittest 框架.这就使得我们在 unittest 框架迁移到 pytest 框架的时候不需要重写代码.接下来我们在文中来对

  • 浅谈基于Pytest框架的自动化测试开发实践

    目录 01 - Pytest核心功能 02 - 创建测试项目 03 - 编写测试用例 04 - 执行测试用例 05 - 数据与脚本分离 06 - 参数化 07 - 测试配置管理 08 - 测试的准备与收尾 09 - 标记与分组 10 - 并发执行 11 - 测试报告 12 - 总结 参考资料 Pytest是Python的一种易用.高效和灵活的单元测试框架,可以支持单元测试和功能测试.本文不以介绍Pytest工具本身为目的,而是以一个实际的API测试项目为例,将Pytest的功能应用到实际的测试工

  • Python中断言Assertion的一些改进方案

    Python Assert 为何不尽如人意? Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. >>> assert 1 + 1 == 2 >>> assert isinstance('Hello', str) >>> assert isinstance('Hello', int) Traceback (most recent call last): File "<input>

  • python的pytest框架之命令行参数详解(上)

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixture模型.pytest是一个软件测试框架,是一款命令行工具,可以自动找到测试用例执行,并且回报测试结果.有丰富的基础库,可以大幅度提高用户编写测试用例的效率.具备扩展性,用户可以自己编写插件,或者安装第三方提供的插件.可以很容易地与其他工具集成到一起使用.比如持续集成,web自动化测试等. 下面列举了

随机推荐