unittest生成測試報告
測試報告為測試結(jié)果的統(tǒng)計即展示,是自動化測試不可或缺的一部分,利用unittest 可以生成測試報告。
使用第三方 HTMLTestRunner 執(zhí)行測試用例集,生成網(wǎng)頁版測試報告
HTMLTestRunner是Python標(biāo)準(zhǔn)庫的unittest模塊的一個擴展,在使用該模塊之前 要下載HTMLTestRunner.py文件,并將該文件保存在python安裝路徑下的lib文件夾或者 是項目的子包中,在python代碼中通過 import HTMLTestRunner導(dǎo)入,即可使用。
HTMLTestRunner常用參數(shù)介紹:
- stream: 配置測試報告要保存的文件路徑
- title:測試報告標(biāo)題
- description: 測試報告的描述信息
代碼示例:
# 使用discover()來實現(xiàn)添加執(zhí)行整個目錄下所有的測試用例
import os
import unittest
import HTMLTestRunner
import time
# 獲取當(dāng)前路徑
curren_path = os.path.dirname(__file__)
# 獲取測試用例目錄的路徑
case_path = os.path.join(curren_path,"all_case")
# 從當(dāng)前路徑回到上一層路徑
# 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) # 文件類型
# 創(chuàng)建主套件
main_suite = unittest.TestSuite()
# 把測試用例路徑添加到主套件中
main_suite.addTest(discover)
# 執(zhí)行主套件里的測試用例;如果要生成測試報告,則不通過unittest.main()方法執(zhí)行
# unittest.main(defaultTest="main_suite",verbosity=2)
# 執(zhí)行并生成測試報告
# 加個時間戳
now = time.strftime("%y-%m_%d_%H_%M_%S_",time.localtime(time.time()))
# 創(chuàng)建html類型測試報告對象,將執(zhí)行的過程寫入到file_obj中
file_obj = open("D:/pythonProject/P7_P8_Requests/"
"unittest框架/test_report/"
"{}test_report.html".format(now),"w+",encoding="utf-8")
# 創(chuàng)建配置html測試報告的相關(guān)信息的對象
runner = HTMLTestRunner.HTMLTestRunner(stream=file_obj,
title="第一次的測試報告",
description="我是測試報告的描述信息")
# 生成html測試報告;如果要生成測試報告,則不通過unittest.main()方法執(zhí)行
runner.run(main_suite)
查看執(zhí)行結(jié)果
配置詳細(xì)的html測試報告
在測試用例中加上注釋信息,即可在html報告中體現(xiàn),能更好的展示每個用例的信息
一、通過添加 3對雙引號:“”“內(nèi)容”“”
通過在類的下面添加 3對雙引號 “”“測試類01的詳細(xì)信息”“”;在測試方法下面添加 3對雙引號 “”“test_aaa方法的詳細(xì)信息”“”;如下圖:
在生成的測試報告中可更好的展示每條用例的作用
二、只在測試方法中添加
self._testMethodName=設(shè)置測試用例名稱
self._testMethodDoc=設(shè)置測試用例詳情
注:上方下劃線只有一個
在測試用例方法中添加注釋信息;如下圖
查看生成的測試報告
通過TextTestRunner()方法生成text類型的測試報告
代碼示例如下:
# 使用discover()來實現(xiàn)添加執(zhí)行整個目錄下所有的測試用例
import os
import unittest
import HTMLTestRunner
import time
# 獲取當(dāng)前路徑
curren_path = os.path.dirname(__file__)
# 獲取測試用例目錄的路徑
case_path = os.path.join(curren_path,"all_case")
# 從當(dāng)前路徑回到上一層路徑
# 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) # 文件類型
# 創(chuàng)建主套件
main_suite = unittest.TestSuite()
# 把測試用例路徑添加到主套件中
main_suite.addTest(discover)
# 執(zhí)行主套件里的測試用例;如果要生成測試報告,則不通過unittest.main()方法執(zhí)行
# 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="執(zhí)行用例的測試報告", verbosity=2)
test_runner.run(main_suite)
查看執(zhí)行結(jié)果
文章來源:http://www.zghlxwxcb.cn/news/detail-483933.html
更多技術(shù)文章文章來源地址http://www.zghlxwxcb.cn/news/detail-483933.html
到了這里,關(guān)于單元測試|unittest生成測試報告的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!