python单元测试框架unittest学习笔记一--基本概念
一、unittest框架基本原理介绍
unittest是受Junit启发编写的一款python语言的单元测试框架,并与其他语言中的主流单元测试框架有相似的风格。unittest支持自动化测试,测试准备和测试清理部分代码复用,支持测试用例聚合成测试套件,并与报告生成框架相互独立
二、为什么要使用unnitest框架来做单元测试
1、能够组织多个测试用例执行
2、提供丰富的断言方法
3、能够生成测试报告
三、unnittest框架的核心要素
1、testcase:测试用例
一个测试用例是一个独立的测试单元。它检查输入特定的数据时的相应。unittest提供一个基类:TestCase,用于新建测试用例。
2、TestSuite:测试套件
test suite是多个测试用例组合在一起,或称测试套件,并且testsuite可以嵌套testsuite。它用于归档需要一起执行的测试
3、testloader:加载组件
将指定路径下的测试用例py文件加载到testsuite中
4、test runner:测试运行器
testrunner是一个用于执行和输出测试结果的组件。只用来执行测试用例的,其中run(test)会执行testsuite/testcase中的run(result)方法。
这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果
5、test fixture:测试脚手架
testfixture 表示为了开展一项或多项测试所需要进行的准备工作,以及所有相关的清理工作。举个例子:这可能包含创建临时或者代理数据库、
目录,再或者启动一个服务器进程等等
四、基本示例
创建一个测试用例执行类并执行测试
"""unitest的语法规则: 用import unitest导入unitest模块 定义一个集成unittest.TestCase的测试用例类,如class XXX(unitest.TestCase) 即如果定义了则会在每个测试case执行前先执行setup方法,执行完毕后执行teardown方法 用例名 必须以test开头,否则unitest不能识别 一个测试用例应该只测试一个方面,测试的目的和测试内容应该很明确,主要是调用seertEqual\assertRaises等断言方法来 判断程序执行结果和预期值是否相符合 调用unnitest.main()启动测试 """ import unittest def sum(a,b): return a+b class test01(unittest.TestCase): def test_01(self): print("in function test 01") def test_02(self): print("in function test 02") def test_03(self): print(sum(1,8)) def test_04(self): print(sum(6,9)) def test_05(self): print(sum("aaa",9)) if __name__ == '__main__': unittest.main()