python:unittest之跳过测试和预期失败的用例
在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,python的unittest框架就内置这样的功能。
前面的博客介绍了unittest框架的测试用例加载和批量执行的内容,這篇博客,介绍下在unittest框架中,如何跳过预期的测试用例。。。
1、unittest.skip()方法
跳过测试和预期失败的功能,是python3.1版本开始,出现的新功能。unittest支持跳过单个测试用例甚至整个测试类。
skip()的各个方法说明如下:
方法 | 说明 |
@unittest.skip(reason) |
无条件跳过被装饰的测试方法; reason:理由,描述为什么跳过测试用例 |
@unittest.skipIf(condition,reason) |
如果条件为真,则继续执行执行,否则跳过被装饰的测试用例; reason:理由,描述为什么跳过测试用例 |
@unittest.skipUnless(condition,reason) | 除非条件为真,否则跳过被装饰的测试用例; |
@unittest.expectedFailure |
将测试用例标记为“预期失败”: 如果测试执行时失败,则测试结果不计为失败; |
unittest.Skip(reason) |
如引发某种定义的异常,则跳过该测试; 一般可以使用TestCase.skip()或者一个跳过装饰器,而不是直接使用 |
官方文档:https://docs.python.org/3.6/library/unittest.html
2、unittest.skip()实例
# coding=utf-8
import unittest
import requests class DemoTest(unittest.TestCase):
status = 200
def setUp(self):
self.url = 'http://www.cnblogs.com/imyalost/' @unittest.skip(u"无条件跳过该测试")
def test_blog1(self):
# 无条件跳过
r1 = requests.get(self.url) @unittest.skipIf(status > 200, u"状态码大于200,就跳过该测试")
def test_blog2(self):
# 如果断言结果为真,则继续执行,否则跳过测试
r2 = requests.get(self.url)
status2 = r2.status_code
self.assertTrue(status2 > self.status) @unittest.skipUnless(status == 404, u"状态码为200,则跳过")
def test_blog3(self):
# 除非结果为真,否则跳过该测试
r3 = requests.get(self.url)
status3 = r3.status_code
self.assertTrue(status3 > self.status) @unittest.expectedFailure
def test_blog4(self):
# 将测试用例标记为“预期失败”,如果测试执行时失败,则测试结果不计为失败
r4 = requests.get(self.url+'/test4')
status4 = r4.status_code
self.assertTrue(status4 ==self.status) def tearDown(self):
pass if __name__ == '__main__':
unittest.main()
代码简析:
利用requests库的方法,访问我的博客首页,并且断言get请求的返回状态码,判断是否满足被装饰器修饰的条件,最终执行结果如下:
以上就是unittest框架中关于跳过测试和预期失败的方法示例,仅供参考,具体实践请在实战中自行进行。。。
python:unittest之跳过测试和预期失败的用例的更多相关文章
- Python+selenium之跳过测试和预期失败
在运行测试时,需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest单元测试框架提供了实现这些需求的装饰器. 1.unittest.skip(re ...
- python单元测试框架-unittest(五)之跳过测试和预期失败
概要 @unittest.skip(reason): skip(reason)装饰器:直接跳过测试,并说明跳过测试的原因. @unittest.skipIf(reason): skipIf(condi ...
- unittest跳过测试和预期失败
在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest提供了这些需求的装饰器. unittest.skip(reason) 无条 ...
- python Unittest+excel+ddt数据驱动测试
#!user/bin/env python # coding=utf- # @Author : Dang # @Time : // : # @Email : @qq.com # @File : # @ ...
- python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures
1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...
- pytest(9)-标记用例(指定执行、跳过用例、预期失败)
pytest中提供的mark模块,可以实现很多功能,如: 标记用例,即打标签 skip.skipif标记跳过,skip跳过当前用例,skipif符合情况则跳过当前用例 xfail标记为预期失败 标记用 ...
- Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- Pytest权威教程12-跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例
目录 跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例 Skip跳过用例 xFail:将测试函数标记为预期失败 Skip/xFail参数设置 返回: Pytest权威教程 跳过(Sk ...
- 【Python + Selenium】之unittest测试用例满足条件,进行跳过测试Skip
直接上代码: __author__ = 'zc' import unittest class demoSkipTest(unittest.TestCase): a = 70 b = 50 print( ...
随机推荐
- 2018-08-27 使用JDT核心库解析JDK源码后初步分析API命名
源自术语词典API项目 · Issue #85 · program-in-chinese/overview, 打算先用早先的代码提取JDK API中的类/方法/参数名, 看看有哪些词需要翻译. 源码在 ...
- 2018-08-24 中文代码之Spring Boot对H2数据库简单查询
续前文: 中文代码之Spring Boot集成H2内存数据库 在词条中添加英文术语域: @Entity public class 词条 { @Id private long id; private S ...
- UoW中修改VIM的配色方案
在WIN10中提供Bash on Ubuntu on Windows,即在win中提供一个Ubuntu子系统,可以使用bash.该系统中自带的VIM的配色方案colorscheme为默认的,不怎么好, ...
- web自动化 基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架
基于python+Selenium+PHP+Ftp实现的轻量级web自动化测试框架 by:授客 QQ:1033553122 博客:http://blog.sina.com.cn/ishou ...
- Android 9.0新特性
1.全面屏支持,Android P加入了对刘海屏的支持,谷歌称之为凹口屏幕(display with a cutout).借助最新的提供的DisplayCutout类,开发者可以找到非功能区域的位置和 ...
- 用户不在 sudoers 文件中,此事将被报告
在使用Linux系统过程中,通常情况下,我们都会使用普通用户进行日常操作,而root用户只有在权限分配及系统设置时才会使用,而root用户的密码也不可能公开.普通用户执行到系统程序时,需要临时提升权限 ...
- Spark数据倾斜及解决方案
一.场景 1.绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有100个task,97个task都在1s之内执行完了,但是剩余的task却要一两分钟.这种情况很常见. 2.原本能够正 ...
- python datetime object 去除毫秒(microsecond)
>>>import datetime >>>d = datetime.datetime.now().replace(microsecond=0) >>& ...
- shell编程—简介(一)
1.shell概念 shell是一个用C语音编写的程序,他是用户使用Linux的桥梁 shell既是一种命令语音,又是一种程序设计语音 shell是指一种应用程序,这个应用程序提供一个界面,用户通过这 ...
- sql 语句按字段指定值排序及分页
为特定字段赋值并排序 表[Table_temp]中列[col1]为字符,属性为varchar(),排序时需要按照B.A.C的顺序显示,则可按照以下SQL语句: select * from Table_ ...