- 前言
- 一、测试环境
- 二、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路径下。
因为这个文件是根据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))
需要测试的三个文件。
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条)