UnitTest框架
文章目录
- 定义
- 作用
- 核心要素
- TestCase
- TestSuite
- TestRunner
- TestLoader
- Fixture
- 不同IDE运行
- Pycharm运行
- VSCode运行
定义
框架framework,是用于解决某一类事情的功能集合,使用时需要按照框架规定去书写代码。
UnitTest框架,是python自带的单元测试框架,无需安装,可用于单元测试,第三方框架则需先安装后使用。
开发人员使用UnitTest进行单元测试,测试人员使用UnitTest来管理运行多个测试用例。
作用
1、自动化执行用例
2、提供丰富的断言方法,让程序代替人工判断结果是否符合预期
3、生成测试报告
核心要素
TestCase
测试用例,是UnitTest框架的组成部分,而非测试时使用的用例,是框架中最核心的模块。一个TestCase即一个代码文件,需按照标识符规则命名,可在开头说明用例测试目的。
# 1、导包
import unittest
# 2、自定义测试类,继承TestCase类
class TestDemo(unittest.TestCase):# 3、写测试方法即用例代码,需要test开头# 因为unittest.main()的testMethodPrefix的值为'test'
# 4、执行用例
# a.光标定位到类名后执行,执行类中所有方法
# b.光标定位到方法名后执行,执行当前方法
如何用例执行失败,按照以下排查:
1、文件命名是否规范
2、测试方法命名是否规范
3、代码执行无结果可能是此前作为python文件运行过,可重建文件或删除运行方式
TestSuite
测试套件,管理、打包、组装多个测试用例
TestRunner
测试运行,运行测试套件
# 1、导包
import unittest
# 2、实例化套件对象
suite=unittest.TestSuite()
# 3、使用套件对象添加用例方法
# a.套件对象.addTest(测试类名('方法名')),一次只能添加一个方法
suite.addTest(TestDemo1('method1'))
suite.addTest(TestDemo1('method2'))
suite.addTest(TestDemo2('method1'))
suite.addTest(TestDemo2('method2'))
# b.套件对象.addTest(unittest.makeSuite(测试类名)),添加测试类的所有方法
# 需要导入TestDemo from ... import TestDemo
suite.addTest(unittest.makeSuite(TestDemo1))
suite.addTest(unittest.makeSuite(TestDemo2))
# 4、实例化运行对象
runner=unittest.TextTestRunner()
# 5、使用运行对象执行套件对象,运行对象.run(套件对象)
runner.run(suite)
TestLoader
测试加载,对测试套件功能的补充
Fixture
测试夹具,写在测试用例中的代码结构,每个方法执行前后都会执行的内容
不同IDE运行
Pycharm运行
(尚未实践)
运行结果中 .表示用例通过,F表示用例不通过,E表示用例代码有问题
VSCode运行
需要配置unittest,ctrl+shift+P,搜索Python:Configure tests —— unittest —— 包含测试用例的路径 —— 命名方式。
点击左侧绿色图标运行单个方法,或者光标定位到类,右键运行所有方法