Unittest(8):unittest_生成測試報告


unittest_生成測試報告

測試報告為測試結果的統計即展示,是自動化測試不可或缺的一部分,利用unittest 可以生成測試報告

方式一、使用第三方 HTMLTestRunner 執行測試用例集,生成網頁版測試報告(推薦)

HTMLTestRunner是Python標准庫的unittest模塊的一個擴展,在使用該模塊之前 要下載HTMLTestRunner.py文件,並將該文件保存在python安裝路徑下的lib文件夾或者 是項目的子包中,在python代碼中通過 import HTMLTestRunner導入,即可使用。

HTMLTestRunner常用參數介紹:
stream: 配置測試報告要保存的文件路徑
title:測試報告標題
description: 測試報告的描述信

代碼示例:

# 使用discover()來實現添加執行整個目錄下所有的測試用例
import os
import unittest
import HTMLTestRunner
import time

# 獲取當前路徑
curren_path = os.path.dirname(__file__)
# 獲取測試用例目錄的路徑
case_path = os.path.join(curren_path,"all_case")

# 從當前路徑回到上一層路徑
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

# 匹配測試用例路徑下的所有的測試方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路徑
                                               pattern="*_case*.py",
                                               top_level_dir=None)   # 文件類型
# 創建主套件
main_suite = unittest.TestSuite()
# 把測試用例路徑添加到主套件中
main_suite.addTest(discover)
# 執行主套件里的測試用例;如果要生成測試報告,則不通過unittest.main()方法執行
# unittest.main(defaultTest="main_suite",verbosity=2)


# 執行並生成測試報告
# 加個時間戳
now = time.strftime("%y-%m_%d_%H_%M_%S_",time.localtime(time.time()))
# 創建html類型測試報告對象,將執行的過程寫入到file_obj中
file_obj = open("D:/pythonProject/P7_P8_Requests/"
                "unittest框架/test_report/"
                "{}test_report.html".format(now),"w+",encoding="utf-8")
# 創建配置html測試報告的相關信息的對象
runner = HTMLTestRunner.HTMLTestRunner(stream=file_obj,
                                       title="第一次的測試報告",
                                       description="我是測試報告的描述信息")
# 生成html測試報告;如果要生成測試報告,則不通過unittest.main()方法執行
runner.run(main_suite)

查看執行結果

 

配置詳細的html測試報告

在測試用例中加上注釋信息,即可在html報告中體現,能更好的展示每個用例的信息;

一、通過添加 3對雙引號:"""內容"""

通過在類的下面添加 3對雙引號 """測試類01的詳細信息""";在測試方法下面添加 3對雙引號 """test_aaa方法的詳細信息""";如下圖:

 

 在生成的測試報告中可更好的展示每條用例的作用

 

 二、只在測試方法中添加

self._testMethodName=設置測試用例名稱,
self._testMethodDoc=設置測試用例詳情

注意:上方下划線只有一個,不要搞錯!

在測試用例方法中添加注釋信息;如下圖

 

 查看生成的測試報告

 

 方式二、通過TextTestRunner()方法生成text類型的測試報告

代碼示例:

# 使用discover()來實現添加執行整個目錄下所有的測試用例
import os
import unittest
import HTMLTestRunner
import time

# 獲取當前路徑
curren_path = os.path.dirname(__file__)
# 獲取測試用例目錄的路徑
case_path = os.path.join(curren_path,"all_case")

# 從當前路徑回到上一層路徑
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))

# 匹配測試用例路徑下的所有的測試方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路徑
                                               pattern="*_case*.py",
                                               top_level_dir=None)   # 文件類型
# 創建主套件
main_suite = unittest.TestSuite()
# 把測試用例路徑添加到主套件中
main_suite.addTest(discover)
# 執行主套件里的測試用例;如果要生成測試報告,則不通過unittest.main()方法執行
# unittest.main(defaultTest="main_suite",verbosity=2)


# 生成text類型的測試報告
with open('./report/test_result.txt','w',encoding='utf-8') as file:
    test_runner = unittest.TextTestRunner(stream=file,descriptions="執行用例的測試報告", verbosity=2)
    test_runner.run(main_suite)

查看執行結果

 


免責聲明!

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



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