什么是UnitTest框架

UnitTest是Python自带的一个单元测试框架,用它来做单元测试

为什么使用UnitTest框架

1.不需要另外安装模块,因为python自带了
2. 能够组织多个用例去执行 
3. 提供丰富的断言方法 
4. 能够生成测试报告

UnitTest核心要素及对应说明

1. TestCase    ————  测试用例
2. TestSuite   ————  测试套件,多条测试用例集合在一起,就是一个TestSuite
3. TestRunner  ————  用来执行测试用例和测试套件的
4. TestLoader  ————  用来加载TestCase到TestSuite中,即加载满足条件的测试 
    	             用例,并把测试用例封装成测试套件
5. Fixture     ————  我们可以把 Fixture 看作夹心饼干外层的两片饼干,这两片 	 
                     饼干就是 setUp/tearDown,中间的奶油就是测试用例。除
                     此之外,unittest 还提供了更大范围的 Fixture,如测试类和
                     模 块  的 Fixture

使用示例

1. TestCase

*案例* 
定义一个实现加法操作的函数,并对该函数进行测试 

*定义测试用例*
 1. 导包:import unittest 
 2. 定义测试类:新建测试类必须继承unittest.TestCase 
 3. 定义测试方法:测试方法名称命名必须以test开头 
 
 *执行测试用例* 
 方式一:使用pycharm在代码上点击鼠标右键,选择使用UnitTest运行 
 方式二:调用 unittest.main() 来运行

unittest库官网_单元测试

2. TestSuite

使用:
1. 实例化: suite = unittest.TestSuite() (suite:为TestSuite实例化的名称) 
2. 添加用例:suite.addTest(ClassName("MethodName")) (ClassName:为类名;MethodName:为方法名) 
3. 添加扩展:suite.addTest(unittest.makeSuite(ClassName)) (搜索指定ClassName内test开头的方法并添加到测试套件中)

3. TextTestRunner

使用:
1. 实例化: runner = unittest.TextTestRunner() 
2. 执行: runner.run(suite) # suite:为测试套件名称

unittest库官网_unit testing_02


4.TestLoader

用法:
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)

TestLoader与TestSuite区别;

TestLoader 可以添加指定目录,自动加载所有case,不能指定具体case文件里的某一个方法case。
TestSuite 可以指定具体case文件里的某一个具体case方法。

unittest库官网_unit testing_03