单元测试:对功能/代码的最小单元进行测试。函数、类中的方法
def add(a,b):
# 被测函数、被测单元、被测功能
return a + b
# a = 1,b = 1,expected = 2
# 得到实际结果
# 测接口测网页也是测函数,把过程封装成一个函数
def case():
actual = add(1,1)
expected = 2
if actual == expected:
print("测试用例通过")
else:
print("测试用例失败")
case()
输出:测试用例通过
1、assert在Python中进行测试使用assert 断言,不常用if
当使用assert断言,如果测试通过,程序正常执行。如果测试不通过,抛出AssertionError异常。
def add(a,b):
return a + b
# a = 1,b = 1,expected = 2
def case():
actual = add(1,1)
expected = 2
# assert 实际结果与预期结果判断
assert actual == expected
case()
输出:空
def add(a,b):
return a + b
# a = 1,b = 1,expected = 2
def case():
actual = add(1,1)
expected = 3
# assert 实际结果与预期结果判断
assert actual == expected
case()
输出:AssertionError
assert 失败,本质上就是一个异常,异常类型AssertionError
2、当不使用单元框架,做自动化测试
(1) 测试用例函数,手工去调用函数
(2) 当用例失败后,手工加try...
(3) 无法收集用例,放到统一的模块
(4) 不能自动生成测试报告
2、unittest单元测试框架,相当于提供的一个工具集合,一套解决方案。unittest是Python内置的单元测试框架,pytest是第三方的单元测试框架。pytest功能更强。
注意:写好的用例一般要放在统一的文件夹下,文件夹用tests/cases命名,模块名一般test开头。
1、概念test case:测试用例
test suite:测试套件/测试集
test loader:测试加载
test runner:运行器,执行器
fixture:夹具。前置准备和后置清理
2、test caseunittest用法:
(1)导入unittest,继承unittest.TestCase。作为测试用例的函数名必须是test开头,不然不会自动执行。
(2)运行用例,可以点击旁边的播放键。
用例通过
用例失败,但是运行结果中未有失败原因。
当用例执行失败时,使用assert不能展示失败原因。使用self.assertEqual可以将执行结果打印出来,显示失败原因。
3、test suite 收集用例.F. .表示通过 ,F表示False
4、生产测试报告(1) unittestreport -木森老师开发,需要安装
安装方法:1、file—setting—project,点+号搜索unittestreport,install package
2、点击下面运行界面的terminal,输入pip install unittestreport
运行后自动生成report目录,里面有html格式报告。



