unittest單元測試(測試報告生成)


自動化測試執行完成之后,我們需要生成測試報告來查看測試結果,使用HTMLTestRunner模塊可以直接生產Html格式的報告。

下載地址:

http://tungwaiyip.info/software/HTMLTestRunner.html

下載后的修改:

  • 94行引入的名稱要改,從 import StringIO 改成import io
  • 539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer=io.StringIO()
  • 631行 print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改為:print (sys.stderr, '\nTime Elapsed: %s' %(self.stopTime-self.startTime))
  • 642行,if not rmap.has_key(cls): 需要換成 if not cls in rmap:
  • 766行的uo = o.decode('latin-1'),改成 uo=o
  • 772行,把 ue = e.decode('latin-1') 直接改成 ue = e

注意:該修改針對的是使用Python3的朋友,如果你安裝的是Python2,那么就不需要進行修改,直接使用即可。

存放路徑:

將修改完成的模塊存放在Python路徑下Lib目錄里面即可


 案例:

在前一篇文章的runtest.py的基礎上進行修改,從而得到關於百度搜索的測試報告

import unittest from HTMLTestRunner import HTMLTestRunner import time test_dir = './test_case' discovery = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py') if __name__ == '__main__': # 存放報告的文件夾
    report_dir = './test_report'
    # 報告命名時間格式化
    now = time.strftime("%Y-%m-%d %H_%M_%S") # 報告文件完整路徑
    report_name = report_dir+'./'+now+"result.html"

    # 打開文件再報告文件寫入測試結果
    with open(report_name, "wb") as f: runner = HTMLTestRunner(stream=f, title='百度搜索測試報告', description='用例執行結果:') # 運行測試用例
 runner.run(discovery) # 關閉報告文件
        f.close()

代碼分析:
首先,將HTMLTestRunner模塊用import導入進來

其次,通過open()方法以二進制寫模式打開當前目錄下的以'當前時間+result.html'(將報告名稱以當前時間命名,可以便於我們查看),如果沒有,則自動創建該文件

接着,調用HTMLTestRunner模塊下的HTMLTestRunner類。stream指定測試報告文件,title用於定義測試報告的標題,description用於定義測試報告的副標題。

最后,通過HTMLTestRunner的run()方法來運行測試套件中所組裝的測試用例。最后通過close()關閉測試報告文件。


 測試報告:


 美化測試報告

下載地址:

 

https://github.com/easonhan007/HTMLTestRunner

 

修改方式,存儲路徑參照上面

代碼實現:

和上面一樣,除了把HTMLTestRunner換成BSTestRunner

 


免責聲明!

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



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