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報告樣式: