目标 1. 掌握UnitTest框架的基本使用方法 1. UnitTest框架 1.1 什么是框架?
说明: 1. 框架英文单词framework 2. 为解决一类事情的功能集合 1.2 什么是UnitTest框架? 概念:UnitTest是Python自带的一个单元测试框架,用它来做单元测试。 1.3为什么使用UnitTest框架 1. 能够组织多个用例去执行 2. 提供丰富的断言方法 3. 能够生成测试报告 1.4 UnitTest核心要素 1. TestCase 2. TestSuite 3. TestRunner 4. TestLoader 5. Fixture 2. TestCase 说明:TestCase就是测试用例 2.1 案例
定义一个实现加法操作的函数,并对该函数进行测试 2.2定义测试用例 1. 导包:import unittest 2. 定义测试类:新建测试类必须继承unittest.TestCase 3. 定义测试方法:测试方法名称命名必须以test开头 2.3执行测试用例 方式一: 使用pycharm在代码上点击鼠标右键,选择使用UnitTest运行方式二: 调用 unittest.main() 来运行 思考:如何同时运行多个测试用例? 3. TestSuite 说明:(翻译:测试套件)多条测试用例集合在一起,就是一个TestSuite使用: 1. 实例化: suite = unittest.TestSuite() (suite:为TestSuite实例化的名称) 2. 添加用例:suite.addTest(ClassName("MethodName")) (ClassName:为类名;MethodName:为方法名) 3. 添加扩展:suite.addTest(unittest.makeSuite(ClassName)) (搜索指定ClassName内test开头的方法并添加到测试套件中) 提示:TestSuite需要配合TestRunner才能被执行 4. TextTestRunner 说明:TextTestRunner是用来执行测试用例和测试套件的使用: 1. 实例化: runner = unittest.TextTestRunner() 2. 执行: runner.run(suite) # suite:为测试套件名称 需求 将test01.py..test10.py共10条用例,将这10条用例批量执行; 问题 1. 使用suite.addtest(unittest.makeSuite(className))导入10条测试类 2. .addtest()需要添加10次 5. TestLoader 说明: 用来加载TestCase到TestSuite中,即加载满足条件的测试用例,并把测试用例封装成测试套件。 使用unittest.TestLoader,通过该类下面的discover()方法自动搜索指定目录下指定开头的.py文件 , 并将查找到的测试用例组装到测试套件; 用法: suite = unittest.TestLoader().discover(test_dir, pattern='test*.py') 自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件 test_dir: 为指定的测试用例的目录 pattern:为查找的.py文件的格式,默认为'test*.py' 也可以使用unittest.defaultTestLoader 代替 unittest.TestLoader() 运行: runner = unittest.TextTestRunner() runner.run(suite) 5.1 TestLoader与TestSuite区别 1. TestSuite需要手动添加测试用例(可以添加测试类,也可以添加测试类中某个测试方法) 2. TestLoader搜索指定目录下指定开头.py文件,并添加测试类中的所有的测试方法,不能指定添加测试方法; 6. 总结 1. UnitTest框架的作用? 2. 如何定义测试用例? 3. 如何执行测试用例? 4. 如何使用TestSuite? 5. 如何运行TestSuite? 6. 如何使用TestLoader? 7. TestLoader与TestSuite的区别? |