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 指测试套件的实例
来源:https://www.cnblogs.com/aiyumo/p/11764215.html