unittest使用

空扰寡人 提交于 2019-12-02 22:05:47
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 指测试套件的实例
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!