博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python:unittest之跳过测试和预期失败的用例
阅读量:6534 次
发布时间:2019-06-24

本文共 1756 字,大约阅读时间需要 5 分钟。

在利用单元测试框架执行测试用例的过程中,有时只需要执行一部分用例,或者跳过某些暂不需要执行的用例,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()或者一个跳过装饰器,而不是直接使用

官方文档:

 

2、unittest.skip()实例

# coding=utf-8import unittestimport requestsclass 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):        passif __name__ == '__main__':    unittest.main()

代码简析

利用requests库的方法,访问我的博客首页,并且断言get请求的返回状态码,判断是否满足被装饰器修饰的条件,最终执行结果如下:

 

以上就是unittest框架中关于跳过测试和预期失败的方法示例,仅供参考,具体实践请在实战中自行进行。。。

 

你可能感兴趣的文章
TreeView 控件应用
查看>>
sql中更新数据库用到declare @a in
查看>>
问题003:JDK文件夹下的bin有什么作用?javac.exe和java.exe双击后为什么一闪而过,没了?...
查看>>
ACM北大暑期课培训第一天
查看>>
Scanner类中输入int数据,再输入String数据不正常的
查看>>
F. Multicolored Markers(数学思维)
查看>>
Python中cPickle
查看>>
Centos7安装搜狗输入法
查看>>
nodjs html 转 pdf
查看>>
再看BP神经网络
查看>>
SQL学习——基本语法
查看>>
SQL学习——数据类型
查看>>
Content Assist not available at the current location
查看>>
java同学毕业后学习之路建议
查看>>
Python字典
查看>>
ofstream 的中文目录问题
查看>>
Android存储方式之SQLite的使用
查看>>
springcloud ribbon 客户端负载均衡用法
查看>>
Linux操作系统常见安装方式
查看>>
link @import区别 src href的区别
查看>>