《基于Python的全栈自动化测试》之unittest.TextTestRunner、HTMLTestRunnerNew --- 生成测试报告

前言:

    上章讲过,使用 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了,自己下载...邮箱不回了!

 

END!!!

评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值