Python3和HTMLTestRunner生成html測試報告


 

1、測試環境:

  Python3.5+unittest+HTMLTestRunner

 

2、下載HTMLTestRunner.py文件

  下載地址 http://tungwaiyip.info/software/HTMLTestRunner.html
  右鍵單擊保存至本地,放在Python的安裝目錄Lib文件夾下(我本地放在本目錄下:D:\setup\Python35\Lib)

 

3、由於下載的HTMLTestRunner.py文件是基於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))

 

4、以下3個py文件利用unittest、HTMLTestRunner生成html測試報告

test.py 文件

 1 class Test():
 2     #初始化函數
 3     def __init__(self,a,b):
 4         self.a = a
 5         self.b = b
 6 
 7     #兩個數相加
 8     def add(self):
 9         x = self.a+self.b
10         return x
11 
12     #兩個數相減
13     def dele(self):
14         y = self.a-self.b
15         return y

 

add_dele.py文件

 1 #coding=utf-8
 2 from test import Test
 3 import unittest
 4 
 5 class Test_test(unittest.TestCase):
 6     #下面三引號對類的注釋會顯示在報告的表格中
 7     '''數字計算'''
 8     def test_shuzi(self):
 9         #下面三引號對方法的注釋會顯示在報告的表格中
10         '''兩個數字相加以及兩個數字相減'''
11         # 對test文件中的Test類初始化
12         shuzi = Test(7, 3)
13         self.assertEqual(shuzi.add(),10)
14         self.assertEqual(shuzi.dele(),4)
15     def test_liangmethod(self):
16         '''兩數字相加的2倍 加上 兩個數字相減的2倍'''
17         #對test文件中的Test類初始化
18         liangshuzi = Test(6,5)
19         t = liangshuzi.add()*2 + liangshuzi.dele()*2
20         self.assertEqual(t,24)

 

test_add_dele.py文件

 1 #coding=utf-8
 2 from HTMLTestRunner import HTMLTestRunner
 3 import unittest
 4 import add_dele
 5 import time
 6 import os
 7 
 8 #構建測試集
 9 suit = unittest.TestSuite()
10 #測試集加入add_dele文件中被調用的方法。格式suit.addTest(文件名.類名("方法名"))
11 suit.addTest(add_dele.Test_test("test_shuzi"))
12 suit.addTest(add_dele.Test_test("test_liangmethod"))
13 
14 #定義存放測試報告的路徑及文件名
15 #我定義的路徑是:當前路徑+存放報告的專有目錄Report+文件名(文件名是當前時間+report.html)
16 curent_dirc=os.path.dirname(os.path.realpath(__file__))
17 report_dirc = "\Report"
18 now = time.strftime("%Y%m%d-%H%M%S")
19 report_name = curent_dirc+report_dirc+"\\"+now+"report.html"
20 fp = open(report_name,"wb")
21 runner = HTMLTestRunner(stream=fp,
22                         title="測試一下報告生成",
23                         description="用兩個數字的相加減來練習")
24 runner.run(suit)
25 fp.close()

 

5、文件及html報告架構:

 

 

 

 

6、生成的html報告樣式:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM