1. 程式人生 > 程式設計 >Python TestSuite生成測試報告過程解析

Python TestSuite生成測試報告過程解析

簡介:為每一個測試用例新增說明,那麼將會使報告更加易讀懂,工作中彙報資料的技巧
u"test_one方法"

HTMLTestRunner 是 Python 標準庫的 unittest 模組的一個擴充套件,它可以生成 HTML的 測試報告,無法通過pip安裝。

首先要下 HTMLTestRunner.py 檔案,將下載的檔案放入…\python\Lib目錄下 (或者同個路徑)

注意點:

python2和python3,語法不一樣,導致HTMLTestRunner在python3不相容

解決辦法:匯入課程資料裡面修改好的HTMLTestRunner.py (該版本是網上的小夥伴修改好的)

# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import time

class XdclassTestCase(unittest.TestCase):
  def setUp(self):
    self.age = 32
    self.name = "小D課堂"
    print(" setUp method=======")


  def tearDown(self):
    print(" tearDown method=======")
    #斷言是否相同
    self.assertEqual('foo'.upper(),'FOO')

  def test_one(self):
    u"test_one方法"
    print(" test_one 二當家小D 來了")
    #斷言是否相同
    self.assertEqual(self.name,"小D課堂",msg="名字不對")

  def test_two(self):
    u"test_TWO方法說明"
    print(" test_two 前端 來了")
    #斷言是否為 true,msg是斷言錯誤的提示資訊
    self.assertTrue('XD'.isupper(),msg="不是大寫")
    
  def test_three(self):
    u"這是首頁登入測試用例"
    print(" test_three 後端 來了")
    self.assertEqual(self.age,32)

  def test_four(self):
    print(" test_four 小D課堂官網上線啦 https://www.xdclass.net")
    self.assertEqual(self.age,32)

if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(XdclassTestCase("test_two"))
  suite.addTest(XdclassTestCase("test_one"))
  
  suite.addTest(XdclassTestCase("test_three"))
  suite.addTest(XdclassTestCase("test_four"))

  #verbosity引數可以控制執行結果的輸出,0 是簡單報告、1 是一般報告(預設)、2 是詳細報告
  #runner = unittest.TextTestRunner(verbosity=2)
  #runner.run(suite)
  #檔名中加了當前時間,為了每次生成不同的測試報告
  file_prefix = time.strftime("%Y-%m-%d %H_%M_%S",time.localtime())
  print(file_prefix)
  #建立測試報告,此時這個檔案還是空檔案
  # wb 以二進位制格式開啟一個檔案,只用於寫入,如果檔案存在則覆蓋,不存在則建立
  fp = open("./"+file_prefix+"_result.html","wb")
  # stream定義一個測試報告寫入的檔案,title就是標題,description就是描述
  runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"小D課堂 測試報告",description=u"測試用例執行情況")
  
  runner.run(suite)
  fp.close()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。