【超详细入门解释】python unittest HTMLTestRunner 生成测试报告


前言

我们测试完成后需要记录测试结果,生成测试报告。有没有什么比较简单的方式直接生成测试报告呢?

当然有了,HTMLTestRunner就是这样一个专业的第三方库。


一、测试环境

python3.6.4 + unittest + HTMLTestRunner

二、HTMLTestRunner下载地址

下载地址:https://pypi.org/project/HTMLTestRunner/
http://tungwaiyip.info/software/HTMLTestRunner.html
下载完成后,我们直接把HTMLTestRunner.py 保存在我们python安装的lib路径下。

1. 修改文件

因为这个文件是根据python2写的,我们要在python3环境下运行它,我们就要做对应的修改。

第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode(‘latin-1’)修改成uo = e
第772行,将ue = e.decode(‘latin-1’)修改成ue = e
第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))

三、利用python + unittest + HTMLTestRunner生成测试报告

需要测试的三个文件。

test.py

class Test():
    def __init__(self,a,b):
        self.a = a
        self.b = b

    def add(self):
        x = self.a + self.b
        return x
    def dele(self):
        y = self.a - self.b
        return y

test.py是被测的文件,其中包含一个Test类。

add_dele.py 是用unittest写的单元测试,即测试用例,每一个test开头的函数都是测试用例。

from test import Test

import unittest

class Test_test(unittest.TestCase):
    def test_shuzi(self):
        shuzi = Test(7,3)
        self.assertEqual(shuzi.add(),10)
        self.assertEqual(shuzi.dele(),4)

    def test_liangmethod(self):
        liangshuzi = Test(6,5)
        t = liangshuzi.add() * 2 + liangshuzi.dele()*2
        self.assertEqual(t,24)

test_add_dele.py是我们运行的主函数,也是生成报告的函数。

from HTMLTestRunner import HTMLTestRunner
import unittest
import add_dele
import time
import os

suit = unittest.TestSuite()
#构建测试集
suit.addTest(add_dele.Test_test("test_shuzi"))
suit.addTest(add_dele.Test_test("test_liangmethod"))
#向测试集里面添加测试用例

current_dirc = os.path.dirname(os.path.realpath(__file__))
report_dirc = '\Report'
now = time.strftime("%Y-%m-%D %H_%M_%S")
report_name = current_dirc + report_dirc +"\\" + now + "report.html"
with open("2.html","wb") as fp:
    runner = HTMLTestRunner(
        stream=fp,
        title="TestReport",
        description="TestCase"
    )
    runner.run(suit)

# fp.close()

生成的报告详情

总结

本文对使用python + unittest + HTMLTestRunner生成测试报告做了简要的介绍,相信看了本文能基本入门使用。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老师好,我是刘同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值