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

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

文章目录
  • 前言
  • 一、测试环境
  • 二、HTMLTestRunner下载地址
    • 1. 修改文件
  • 三、利用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生成测试报告做了简要的介绍,相信看了本文能基本入门使用。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/922817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存