UnitTest,原名为PyUnit,是由java的jUnit衍生来的,是python内置的单元测试框架。
主要包含:TestCase(测试用例,体现在setUp、run、tearDown)、TestSuite(测试套件)、TestRunner(执行用例,并将测试结果保存到TextTestResult实例中)、TestLoader(加载TestCase到TestSuite中)、Fixture(一个测试用例的初始化准备及还原,主要是setUp() 和 tearDown()方法)
1、TestCase
必须继承unittest.TestCase,并且测试用例必须以test开头
示例:测试函数求和,一共有两条用例
2、Testsuite,测试套件,可以整合所有测试用例
步骤:1、创建测试套件;2、将测试用例放入测试套件中;3、执行测试用例。
测试用例case1.py:
测试套件:将测试用例放到测试套件中,统一执行。
以下方法适用于将类中的指定测试用例放到测试套件中,或者指定类中的所有测试用例放到测试套件中执行。
3、TestLoader
通过discover()方法将所搜指定路径下的所有py文件,并将查找到文件中的所有以test开头的方法添加到测试套件中。
测试用例执行前、后要自动调用的函数。比如测试数据准备、数据库链接、打开浏览器等。
示例1,方法级别:放在类中。
每个测试用例执行前都会调用一次setUp,执行后都会调用一次tearDown
示例2,类级别:放在类中,需要用@classmethod修饰。
当调用类中的不管多少方法,类开始的时候调用一次setUpClass,结束的时候调用一次tearDownClass,。如果有多个类,那么就会执行多次。
示例3,模块级:放在类外。
不管py文件中有多少类和多少方法,py文件执行前只调用一次setUpModule(),py文件执行后调用一次tearDownModule()
测试py文件:
调用后文件后的执行结果: