在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,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之跳过测试和预期失败的用例的更多相关文章

  1. Python+selenium之跳过测试和预期失败

    在运行测试时,需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest单元测试框架提供了实现这些需求的装饰器. 1.unittest.skip(re ...

  2. python单元测试框架-unittest(五)之跳过测试和预期失败

    概要 @unittest.skip(reason): skip(reason)装饰器:直接跳过测试,并说明跳过测试的原因. @unittest.skipIf(reason): skipIf(condi ...

  3. unittest跳过测试和预期失败

    在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败.unittest提供了这些需求的装饰器. unittest.skip(reason) 无条 ...

  4. python Unittest+excel+ddt数据驱动测试

    #!user/bin/env python # coding=utf- # @Author : Dang # @Time : // : # @Email : @qq.com # @File : # @ ...

  5. python unittest单元测试框架-3用例执行顺序、多级目录、装饰器、fixtures

    1.用例执行顺序 unittest默认会按照ascii码的顺序,依次执行.类名--方法名排序,使用discover也是默认排序.如果不想使用默认排序,就使用testsuite测试集的方式. impor ...

  6. pytest(9)-标记用例(指定执行、跳过用例、预期失败)

    pytest中提供的mark模块,可以实现很多功能,如: 标记用例,即打标签 skip.skipif标记跳过,skip跳过当前用例,skipif符合情况则跳过当前用例 xfail标记为预期失败 标记用 ...

  7. Python接口测试实战4(下) - 框架完善:用例基类,用例标签,重新运行上次失败用例

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  8. Pytest权威教程12-跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例

    目录 跳过(Skip)及预期失败(xFail): 处理不能成功的测试用例 Skip跳过用例 xFail:将测试函数标记为预期失败 Skip/xFail参数设置 返回: Pytest权威教程 跳过(Sk ...

  9. 【Python + Selenium】之unittest测试用例满足条件,进行跳过测试Skip

    直接上代码: __author__ = 'zc' import unittest class demoSkipTest(unittest.TestCase): a = 70 b = 50 print( ...

随机推荐

  1. mysql安装完成之后为root用户添加密码

    编辑MySql的配置文件:my.ini(在MySql安装目录下). 打开配置文件,在文件最后一行添加:skip-grant-tables,然后保存退出. 意思为就是在启mysql时不启动grant-t ...

  2. html之多行文本textarea 及下拉框select(12)

    1.多行文本 多行文本使用textarea标签,默认值需要写在中间,和input标签不同,name属性用于后台获取数据(request.POST.get(meno)) <body> < ...

  3. CSS回顾(基础知识,元素,选择器,盒子,颜色)

    元素分类: 1.行级元素:内联元素  inline 特征:内容决定元素所占位置,不可以通过CSS改变宽高 span  strong   em  a  del 2.块级元素:block特征:独占一行,可 ...

  4. canvas学习总结四:绘制虚线

    上一章节我们说到,线性路径的绘制,主要利用movoTo(),lineTo()等方法,当然 Canvas 2D API 也提供了虚线的绘制方法,CanvasRenderingContext2D.setL ...

  5. memory 监控 mysql vs percona vs maria

    oracle mysql 5.7 在performance_schema 通过以下表展现内存信息.这些表实际engine为performance_schema.这些表数据实际是以数组的形式存储在内存中 ...

  6. Windows Server 2016-Win Ser 2016新增功能

    本来想着整个系列都是与Active Directory相关的内容,上一章节我们应读者要求补充了Window Server 2016标准版与数据中心版的区别,鉴于读者的疑惑,从本章节开始补充三到五章与W ...

  7. CentOS 7.0安装

    CentOS 7.0安装 本次通过虚拟机的方法安装CentOS 7.0操作系统,开启虚拟机后会出现以下界面 1.选择第一项,Install CentOS 7 (安装CentOS 7),进入下面的界面 ...

  8. HOW TO ANSWER: Tell Me About Yourself

    https://biginterview.com/blog/2011/09/tell-me-about-yourself.html There are some job interview quest ...

  9. java求解第N个素数(质数)

    面试中,遇到一个题目:求解第N个素数. import java.util.Scanner; public class GetPrimeNumber { public static int NthPri ...

  10. LeetCode算法题-Convert a Number to Hexadecimal(Java实现)

    这是悦乐书的第219次更新,第231篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第86题(顺位题号是405).给定一个整数,写一个算法将其转换为十六进制.对于负整数,使 ...