(四十二)Unittest单元测试框架之关于unittest还需要知道的-跳过测试和预期失败
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
学习selenium自动化之前,最好先学习HTML、CSS、JavaScript等知识,有助于理解定位及操作元素的原理。关于python和selenium安装请自行搜索别的资料,这里就不多做介绍了,所有例子均使用python3.6+selenium执行的。
#------------------------------------------------我是可耻的分割线-------------------------------------------
在运行测试时,有时需要直接跳过某些测试用例,或者当用例符合某个条件时跳过测试,又或者直接将测试用例设置为失败。unittest提供了实现这些需求的装饰器。
unittest.skip(reason) 无条件地跳过装饰的测试,说明跳过测试的原因。
unittest.skipIf(condition,reason) 跳过转世的测试,如果条件为真时。
unittest.skipUnless(condition,reason) 跳过转世的测试,出发条件为真。
unittest.expectedFailure() 测试标记为失败。不管执行结果是否失败,统一标记为失败。
新建test.py
import unittest class MyTest(unittest.TestCase):
def setUp(self):
pass def tearDown(self):
pass @unittest.skip("直接跳过测试")
def test_skip(self):
print('test aaa') @unittest.skipIf(3 > 2,"当条件为True时跳过")
def test_skip_if(self):
print('test bbb') @unittest.skipUnless(3 > 2, "当条件为True时执行测试")
def test_skip_Unless(self):
print('test ccc') @unittest.expectedFailure
def test_expected_failure(self):
self.assertEqual(2,3) if __name__ == '__main__':
unittest.main()
运行结果:
上例中共创建了4条测试用例。第一条测试用例通过@unittest.skip()装饰,直接跳过不执行。第二条用例通过@unittest.skipIf()装饰,当条件为真时不执行,3>2条件为真(True),跳过不执行。第三条用例@unittest.skipUnless()装饰,当条件为真时执行,判断3 > 2条件为真(True),第三条用例执行。第四条用例通过 @unittest.expectedFailure装饰,不管执行结果是否失败,同意标记为失败,但不会抛出错误信息。
当然,这些方法同样可以作用域测试类,只需将它们定义在测试类上面即可。
@unittest.skip("直接跳过测试")
class MyTest(unittest.TestCase):
def setUp(self):
pass
最新文章
- NanUI for Winform 使用示例【第一集】——山寨个代码编辑器
- 在AndroidStudio v1.2.0中导入或增加新项目或工程(导入第三方类库或工程)
- hadoop 2.6伪分布安装
- r0遍历系统进程方法总结
- 微博开发平台java SDK demo学习之examples(demo)
- 动态创建dom元素
- Hibernate四 批量处理
- (极简)linux安装QT4.7.3
- AI 人工智能 探索 (二)
- java实现FFT变换(转)
- Spring @Transactional使用的示例
- Javaweb向服务器上传文件以及从服务器下载文件的方法
- Caused by: java.net.ConnectException: Call From master/192.168.199.130 to master:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.
- Zabbix实战-简易教程(6)--Server端高可用
- NancyFX 第九章 Responses(响应对象)
- 封装的通过微信JS-SDK实现自定义分享到朋友圈或者朋友的ES6类!
- 【worker】js中的多线程
- 6个小而美的es6新特性
- 牛客网noip集训4
- 初试kotlin:用Kotlin开发桌面/CommandLine 工具