pytest多重断言的实现

作者:leslie0727 时间:2021-10-12 03:30:25 

当我们写用例断言时,往往一个断言结果是不够的,所以需要加入多重断言,而多重断言,当断言中间出现断言结果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

来源:https://blog.csdn.net/weixin_43877527/article/details/128534270

标签:pytest,多重断言
0
投稿

猜你喜欢

  • python调用cmd复制文件代码分享

    2022-12-26 11:18:22
  • Python安装第三方库的方法(pip/conda、easy_install、setup.py)

    2022-10-28 13:22:34
  • 如何基于matlab相机标定导出xml文件

    2023-01-29 17:52:59
  • MAC系统中添加MYSQL开机启动的方法

    2024-01-13 01:52:53
  • 实例讲解PHP验证邮箱是否合格

    2023-11-22 07:05:53
  • php设计模式之正面模式实例分析【星际争霸游戏案例】

    2023-11-14 10:54:04
  • Python字典实现简单的三级菜单(实例讲解)

    2021-07-13 12:03:32
  • Pandas数据处理加速技巧汇总

    2023-08-12 19:02:36
  • pytorch cuda上tensor的定义 以及减少cpu的操作详解

    2022-08-01 15:34:02
  • Python数据模型与Python对象模型的相关总结

    2021-05-15 02:21:43
  • Python实现计算字符串中出现次数最多的字符示例

    2021-03-11 15:59:13
  • laravel清除视图缓存的代码

    2023-11-24 14:39:39
  • ThinkPHP模板范围判断输出In标签与Range标签用法详解

    2024-05-05 09:17:00
  • python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例

    2023-08-11 19:10:44
  • python基础教程之python消息摘要算法使用示例

    2023-07-03 20:06:00
  • Python学习笔记之变量与转义符

    2022-12-20 23:21:18
  • 对pyqt5之menu和action的使用详解

    2022-03-12 23:00:37
  • python实现打印类的所有属性和方法

    2021-07-28 14:51:56
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例

    2024-01-21 16:15:42
  • 利用JS提交表单的几种方法和验证(必看篇)

    2023-08-17 16:43:22
  • asp之家 网络编程 m.aspxhome.com