Pytest之pytest-assume同用例多断言,断言1失败会执行后续代码及断言2

    一般我们做自动化测试时,一个用例会写多个断言,当第一个断言失败后,后面的代码就不会执行了,于是我们引进了pytest-assume插件可以解决断言失败后继续断言的问题。

一、安装依赖包

pip install pytest-assume

二、使用assert进行断言

我们发现test_01用例中,第一个断言assert 0 == 1失败时,后面的代码不会再执行, print('执行test_01断言2')和assert 1 == 2未执行。

#!/usr/bin/env python
# _*_coding:utf-8_*_
import pytestclass Test(object):def test_01(self):"""用例1"""print('执行test_01断言1')assert 0 == 1print('执行test_01断言2')assert 1 == 2def test_02(self):"""用例2"""print('执行test_02断言1')assert 3 == 3print('执行test_02断言2')assert 4 == 4if __name__ == '__main__':pytest.main(['-s', 'test_C_01.py'])C:\Users\admin\AppData\Local\Programs\Python\Python37\python.exe C:/Users/admin/Desktop/代码/Test/test/test_C_01.py
============================= test session starts =============================
platform win32 -- Python 3.7.7, pytest-5.4.2, py-1.8.1, pluggy-0.13.1
rootdir: C:\Users\admin\Desktop\代码\Test\test
plugins: assume-2.2.1
收集的测试用例:[<Function test_01>, <Function test_02>]
排序后收集的测试用例:[<Function test_01>, <Function test_02>]
collected 2 itemstest_C_01.py 执行test_01断言1
F执行test_02断言1
执行test_02断言2
.================================== FAILURES ===================================
________________________________ Test.test_01 _________________________________self = <test.test_C_01.Test object at 0x0000018C74AAEF48>def test_01(self):"""用例1"""print('执行test_01断言1')
>       assert 0 == 1
E       assert 0 == 1test_C_01.py:11: AssertionError
=========================== short test summary info ===========================
FAILED test_C_01.py::Test::test_01 - assert 0 == 1
========================= 1 failed, 1 passed in 0.06s =========================Process finished with exit code 0

二、使用pytest.assume进行断言,用法pytest.assume(预期结果 == 实际结果)

我们发现test_01用例中,第一个断言pytest.assume(0 == 1)失败时,print('执行test_01断言2')和pytest.assume(1 == 2)仍执行了,说明同一个用例中使用pytest.assume进行断言,如果第一个断言失败了,后面的代码仍会继续执行。

#!/usr/bin/env python
# _*_coding:utf-8_*_
import pytestclass Test(object):def test_01(self):"""用例1"""print('执行test_01断言1')pytest.assume(0 == 1)print('执行test_01断言2')pytest.assume(1 == 2)def test_02(self):"""用例2"""print('执行test_02断言1')pytest.assume(3 == 3)print('执行test_02断言2')pytest.assume(4 == 4)if __name__ == '__main__':pytest.main(['-s', 'test_C_01.py'])C:\Users\admin\AppData\Local\Programs\Python\Python37\python.exe C:/Users/admin/Desktop/代码/Test/test/test_C_01.py
============================= test session starts =============================
platform win32 -- Python 3.7.7, pytest-5.4.2, py-1.8.1, pluggy-0.13.1
rootdir: C:\Users\admin\Desktop\代码\Test\test
plugins: assume-2.2.1
收集的测试用例:[<Function test_01>, <Function test_02>]
排序后收集的测试用例:[<Function test_01>, <Function test_02>]
collected 2 itemstest_C_01.py 执行test_01断言1
执行test_01断言2
F执行test_02断言1
执行test_02断言2
.================================== FAILURES ===================================
________________________________ Test.test_01 _________________________________tp = <class 'pytest_assume.plugin.FailedAssumption'>, value = None, tb = Nonedef reraise(tp, value, tb=None):try:if value is None:value = tp()if value.__traceback__ is not tb:
>               raise value.with_traceback(tb)
E               pytest_assume.plugin.FailedAssumption: 
E               2 Failed Assumptions:
E               
E               test_C_01.py:12: AssumptionFailure
E               >>  pytest.assume(0 == 1)
E               AssertionError: assert False
E               
E               test_C_01.py:15: AssumptionFailure
E               >>  pytest.assume(1 == 2)
E               AssertionError: assert False..\..\..\..\AppData\Roaming\Python\Python37\site-packages\six.py:702: FailedAssumption
=========================== short test summary info ===========================
FAILED test_C_01.py::Test::test_01 - pytest_assume.plugin.FailedAssumption: 
========================= 1 failed, 1 passed in 0.20s =========================Process finished with exit code 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/568261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无法打开包括文件: “corecrt.h”: No such file or directory

刚开始安装qt&#xff0c;测试是否安装成功就出现此问题&#xff0c;让人很头大 参考&#xff1a;https://blog.csdn.net/x356982611/article/details/51140807的播客 编译时候使用的是最新的sdk版本10.0.10586.0版本但是它里面没有ucrt目录&#xff0c;问题找到了。 看了下v…

Pytest-ordering自定义用例执行顺序

我们一般在做自动化测试时&#xff0c;用例设计之间应该是可以相互独立执行的&#xff0c;没有一定的前后依赖关系的&#xff0c;如果我们真的有前后依赖&#xff0c;想指定用例的先后顺序&#xff0c;可以用到pytest-ordering插件解决这个问题 1、安装依赖包 pip install pyt…

LNK2019无法解析的外部符号 public: static struct cv::Ptr class cv::xfeatures2d::SURF问题解决

原因是lib文件没有引入 opencv_xfeatures2d320d.lib opencv_features2d320d.lib 在配置opencv时&#xff0c;应把D:\Program Files (x86)\opencv3\opencv\build\x64\vc14\lib下所有的lib文件都添加到链接器的输入中 也有可能是你下载的opencv库中没有这个lib&#xff0c;而你…

Pytest参数选项在脚本中和命令行用法详解

运行pytest可以指定目录和文件&#xff0c;如果不指定&#xff0c;pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数。我们把pytest搜索测试文件和测试用例的过程称为测试搜索&#xff08;test discovery&#xff09;。只要遵循pytest的命名规则&#xff0…

Win7下OpenCV3.2.0+VS2015配置

参考自&#xff1a;https://blog.csdn.net/qq_22812319/article/details/78335880 一、预备知识 1、下载opencv时&#xff0c;opencv与vs版本是有固定关系的。 2、vs一般使用release版本。 3、首先在下载的openCV解压目录opencv/build/x64/下查看文件夹名&#xff0c;如下图…

Pytest标记预期失败得测试用例@pytest.mark.xfail()

pytest除了测试函数中使用这个方法pytest.xfail()外&#xff0c;xfail还有一种使用方法。就是pytest.mark.xfail()标记预期会失败的用例&#xff0c;即期望测试用例是失败的&#xff0c;但是不会影响测试用例的的执行。 标记的用例运行后&#xff0c;断言失败&#xff0c;所以…

win7 vs2015配置qt5.11

1、下载vs&#xff0c;和qt。 qt百度网盘下载链接&#xff1a;https://pan.baidu.com/s/12bUt31_mXGvgc3tdJRkkkw 提取码&#xff1a;2swk 下载完成之后&#xff0c;直接进行安装&#xff0c;下一步。 安装的时候要根据自己的VS版本选择相应的msvc&#xff08;VC运行库&…

LNK2019 无法解析的外部符号 __imp_CommandLineToArgvW,该符号在函数 WinMain 中被引用

在VS2017中新建Qt GUI 工程&#xff0c;无法编译&#xff0c;报链接错误 LNK2019 无法解析的外部符号 __imp_CommandLineToArgvW&#xff0c;该符号在函数 WinMain 中被引用 经比对&#xff0c;是lib配置问题。如歌在Qt Creator中创建工程然后再在VS2017中打开&#xff0c;则…

原创 | 开源AI测试专题、Jmeter测试专题

开源 AI 测试专题震惊&#xff01;AI成功落地自动化测试AI 软件测试工具 Mabl 快速概览AI测试工具 Mabl - 测试用例自动自愈Sauce Labs 的持续 UI 自动化测试云疫情中诞生的 AI 测试工具&#xff1a;ai-webdriverAI 测试又多新花招&#xff1f;ai-webdriver-1.0.1 独家更新一眼…

Qt 二级菜单无法输入中文

一、qt中二级菜单无法输入中文 解决办法&#xff1a;写到其他地方再粘贴复制过来即可ok 二、qt界面设置后&#xff0c;vs中没有反应 解决方法&#xff1a;在vs中寻找 ui_projectname.h projectname即为你的项目名&#xff0c;查看其中是否已有你qt中已经声明的控件&#x…

Python深层解析json数据之JsonPath

我们在做接口自动化时&#xff0c;一般接口响应的都是json数据体&#xff0c;对响应数据进行提取使用或断言&#xff0c;当数据量很大或层级很深时&#xff0c;就会变得很麻烦&#xff0c;于是就可以用到jsonpath模块&#xff0c;解决json路径深取值难的问题。一、 jsonpath介绍…

VS2015+qt5.11入门(实现计算机的加法和登录操作)

1、在vs中新建qt项目 2、打开Form Files中的.ui文件。即打开qt creator界面 3、在界面中添加两个label&#xff0c;两个LineEdit&#xff0c;一个计算按钮。点击保存 控件右击-->改变对象名称可以直接改变控件名。&#xff08;会映射显示在vs中的ui_projectname.h中&…

Python中map()函数用法

map() 是python的内置函数&#xff0c;会根据提供的函数对指定序列做映射。对可迭代函数*iterables中的每个元素应用func方法&#xff0c;将结果作为迭代器对象返回。注意&#xff1a;map()函数返回的是一个新的迭代器对象&#xff0c;不会改变原有对象 map()用法 class map(ob…

任务管理器只有概要信息解决办法

在任务管理器最顶端左击两下即可ok 参考自&#xff1a;https://wenda.so.com/q/1515482566217850

抓包工具mitmproxy环境配置使用(一)

一、mitmproxy介绍mitmproxy是一款开源的抓包工具&#xff0c;支持SSL的HTTP代理&#xff0c;它可以用于调试HTTP通信&#xff0c;发起中间人攻击等&#xff0c;还可以配合自定义python脚本使用&#xff0c;不同于 fiddler 或 wireshark 等抓包工具&#xff0c;mitmproxy 不仅可…

cvtColor不是cv的成员

头文件的问题 #include <opencv2/opencv.hpp> 这个就可以 opencv 3导入文件&#xff1a; #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp>

Pytest fixture参数化params

unittest使用ddt来实现测试用例参数化、或parameterized实现测试用例参数化&#xff0c;pytest测试用例里面对应的参数可以用 parametrize 实现参数化&#xff0c;今天我们来了解下fixture参数化paramsfixture的参数可以解决大量重复代码工作,比如数据库的连接、查询、关闭等.同…

opencv videocapture读取视频cap.isOpened 输出总是false

利用qtopencv3c 读取视频文件&#xff0c;发现isOpened()总是输出false 一直以为是语句的问题&#xff0c;后来反应过来可能是打开视频格式&#xff0c;或者视频本身能否播放。 检查发现&#xff0c;是视频本身不能播放&#xff0c;换了个视频&#xff0c;就ok了

python3中选择文件对话框的格式打开和保存图片

tkinter.filedialog.asksaveasfilename() # 选择以什么文件名保存&#xff0c;返回文件名 tkinter.filedialog.askopenfilename() # 选择打开什么文件&#xff0c;返回文件名有时候我们想要以选择文件对话框的格式打开一张图片或者保存图片&#xff0c;我在尝试之后把我的…

Python测试开发django1.简介

Django是一种基于Python开发的开源的高级Web应用框架&#xff0c;使用Django&#xff0c;使你能够以最小的代价构建和维护高质量的Web应用。Django 本身基于 MVC 模型&#xff0c;即 Model&#xff08;模型&#xff09; View&#xff08;视图&#xff09; Controller&#xff0…