码迷,mamicode.com
首页 > 其他好文 > 详细

unittest使用

时间:2019-10-30 13:13:04      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:实例   路径   跳过   dir   class   装饰器   over   包含   unit   

unittest:单元测试框架
主要包含四部分:
1、测试固件(test fixture):
定义:包含执行测试前的准备setUP()、测试执行完后的清扫工作tearDown()
注意:
setUp()执行成功之后,不管test中有没有异常发生,tearDown()都会执行
测试固件在每个test都会执行
执行一次:使用setUpClass()和tearDownClass()可以的得到这样的效果,必须被装饰成classmethod

2、测试用例(test case):
定义:包含测试固件、具体测试代码函数,测试固件可以不要,但至少要有一个以小写test开头的函数
实现:使用装饰器@unittest.skip可以跳过某个测试用例不执行

3、测试套件(test suite):
定义:
很多测试用例的集合,通过测试套件来管理多个测试用例,会根据用例的加载顺序执行用例
实现:
1、第一种:
使用TestSuite()初始化一个Suite实例 unittest.TestSuite()
使用addTest()方法加载测试方法到测试套件中
addTest()如果要在传入别的包下的测试方法: 包名.类名(测试方法函数)
也可以使用addTests()方法
suite.addTests((lesson(‘test_case1‘),lesson(‘test_case2‘)))
2、第二种:
makeSuite()可以把一个类下面所有测试方法都加载到测试套件中
suite = unittest.TestSuite(unittest.makeSuite(包名.类名))
3、第三种:
discover()方法可以把指定路径下所有测试方法都加载到测试套件中
discover = unittest.defaultTestLoader.discover(test_dir, pattern=‘lesson*.py‘)
4、测试执行器(test runner):
定义:测试执行器用来执行加载测试用例,可以是一个测试用例,也可以是测试套件
实现方法:
1、上方实例中的直接使用unittest.main()去执行 ,
会搜索所有以test开头的测试用例,按照ASCII的顺序执行多个用例
2、使用TextTestRunner()方法初始化一个测试执行器,然后使用run()去执行测试套件
runner = unittest.TextTestRunner()
runner.run(suite) suite 指测试套件的实例

unittest使用

标签:实例   路径   跳过   dir   class   装饰器   over   包含   unit   

原文地址:https://www.cnblogs.com/aiyumo/p/11764215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!