unittest詳解(七) 自動生成測試報告

2022-03-31 17:40:58 字數 2121 閱讀 9689

用例執行完成後,執行結果預設是輸出在螢幕上,其實我們可以把結果輸出到乙個檔案中,形成測試報告。

unittest自帶的測試報告是文字形式的,如下**:

import

unittest

if__name__ == "

__main__":

#測試用例目錄

test_dir = r"

d:\git\test_framework\test_case"#

載入測試用例

discover = unittest.defaulttestloader.discover(test_dir, '

test*.py')

#測試報告路徑

report_path = r"

d:\git\test_framework\report\report.text

"with open(report_path,"a

") as report:

runner = unittest.texttestrunner(stream=report,verbosity=2)

runner.run(discover)

生成的txt測試報告如下:

這種txt檔案測試報告不能直觀地展示用例執**況,引入第三方模組htmltestrunner,可以展示乙份優美的html格式的測試報告。

下面我們就來介紹下htmltestrunner模組

因為htmltestrunner模組是基於python2開發的,目前停止更新了,在python3上執行會報錯。為了使其支援python3環境,需要對其中的部分內容進行修改:

第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, 『\ntimeelapsed: %s『 % (self.stoptime-self.starttime))

第642行,將if not rmap.has_key(cls):修改成if notcls in rmap:

第766行,將uo = o.decode(『latin-1『)修改成uo = e

第775行,將ue = e.decode(『latin-1『)修改成ue = e

修改完成後儲存。

現在我們就可以生成乙份優美的測試報告了

**:

import

unittest

from htmltestrunner import

htmltestrunner

if__name__ == "

__main__":

#測試用例目錄

test_dir = r"

d:\git\test_framework\test_case"#

載入測試用例

discover = unittest.defaulttestloader.discover(test_dir, '

test*.py')

#測試報告路徑

report_path = r"

d:\git\test_framework\report\report.html

"with open(report_path,"wb

") as report:

runner = htmltestrunner(stream =report,

title = "

測試報告",

description = "

系統登入測試用例執行")

unittest詳解(一) unittest框架

unittest 介紹了4 個重要的概念 test case,test suite,test runner,test fixture。1 testcase 乙個testcase 的例項就是乙個測試用例,就是乙個完整的測試流程,包括測試前準備環境的搭建 setup 實現測試過程的 run 以及測試後環...

Ibatis (七) 自動生成主鍵

很多資料庫支援自動生成主鍵的資料型別。不過這通常 並不總是 是個私有的特性。sql map通過的子元素來支援自動生成的鍵值。它同時支援預生成 如oracle 和後生成兩種型別 如ms sql server 1.建表,將id設定為主鍵,且需加上auto increment設定為自動增加 create ...

unittest(生成測試報告)

1 先導入htmltestrunner模組 2 例項如下 1 單用例檔案執行且生成報告 import unittest import htmltestrunner class study01 unittest.testcase deftest01 self print test01 def test...