前言:
上章讲过,使用 TextTestRunner 执行测试用例,实际上 TextTestRunner 和 HTMLTestRunner 都是在 TestRunner 进行的拓展,它们都是调用父类(TestRunner )的方法来执行测试用例,只不过生成的测试报告样式不同!
TextTestRunner:
首先来看 TextTestRunner 的参数和使用方法:
TextTestRunner 有很多参数,暂时我们先了解三种:TextTestRunner(stream=None, descriptions=None, verbosity=0)
import unittest # 导入单元测试框架
from class_13.test_math import TestMath # 导入测试类
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(TestMath('test_add'))
suite.addTest(TestMath('test_sub'))
suite.addTest(TestMath('test_multiply'))
suite.addTest(TestMath('test_divide'))
"""TextTestRunner 有三个参数,它们都有默认参数:
1. verbosity 分别三个级别: 0 1 2 它们输出的测试报告详细程度不同,2 最详细
2. stream 关系着测试报告的位置,如果默认为None的话,测试报告会输出到控制台
3. descriptions 测试报告的描述 """
runner = unittest.TextTestRunner(stream=None, descriptions=None, verbosity=0)
runner.run(suite)
我们先设定一条用例失败,然后看下verbosity=0 的输出结果: 结果只能看到执行了4条和失败了1条。
verbosity=1 的输出结果:多了一点信息,F代表失败了1条,...代表成功了3条。
verbosity=2 的输出结果:显示出了每条用例的详细信息和执行结果。
但是这些测试报告都是直接输入在控制台的,非常不方便查看和保存,所以我们可以用 stream 参数来指定测试报告的保存方式:
import unittest # 导入单元测试框架
from class_13.test_math import TestMath # 导入测试类
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(TestMath('test_add'))
suite.addTest(TestMath('test_sub'))
suite.addTest(TestMath('test_multiply'))
suite.addTest(TestMath('test_divide'))
"""TextTestRunner 有三个参数,它们都有默认参数:
1. verbosity 分别三个级别: 0 1 2 它们输出的测试报告详细程度不同,2 最详细
2. stream 关系着测试报告的位置,如果默认为None的话,测试报告会输出到控制台
3. descriptions 测试报告的描述 """
""" 我们可以用上下文管理器来创建一个txt文本,然后将测试报告写在txt中,并且写上测试报告描述和提 升报告的详细程度"""
with open('test_result.txt', 'w', encoding='utf-8') as file:
runner = unittest.TextTestRunner(stream=file, descriptions='这是第一次执行用例的测试报告!', verbosity=2)
runner.run(suite)
测试结果:生成了一个txt文本,并且写入了测试报告!
HTMLTestRunnerNew:
HTMLTestRunner 另外一种非常高大上可以输出网页版测试报告的方法,它的用法和TextTestRunner 基本一致,不过是在创建测试报告文件时略有不同:
import unittest # 导入单元测试框架
import HTMLTestRunnerNew
from class_13.test_math import TestMath # 导入测试类
if __name__ == "__main__":
suite = unittest.TestSuite()
suite.addTest(TestMath('test_add'))
suite.addTest(TestMath('test_sub'))
suite.addTest(TestMath('test_multiply'))
suite.addTest(TestMath('test_divide'))
with open('test_result.html', 'wb') as file: # html文件必须以二进制方式写入
runner = HTMLTestRunnerNew.HTMLTestRunner(stream=file,
title='测试报告',
description='这是第一次执行用例的测试报告!',
verbosity=2,
tester='C大调')
runner.run(suite)
测试结果:它会生成一个html文件,用浏览器打开就可以看到高大上的网页版测试报告!
资源下载地址:https://download.csdn.net/download/waitan2018/11905867
积分设置为0了,自己下载...邮箱不回了!