Python - 執行且客製HTMLTestRunner的report
$ wget -P /usr/lib/python2.7 http://tungwaiyip.info/software/HTMLTestRunner_0_8_2/HTMLTestRunner.py
# 編輯執行unittest 的py檔
# 先宣告產生的html檔案存放路徑
tests = ['test_case_1','test_case_2' ] suite = unittest.TestSuite(map(BackUpTest,tests)) testfile = "/tmp/test.html" fp = file(testfile,"wb") runner = HTMLTestRunner.HTMLTestRunner(stream=fp) runner.run(suite) |
我們用HTMLTestRunner(0.8.2)來產生unittest report預設輸出的畫面如下 今天我們想在每個test case加上 自己的docstring該如何做呢?最終畫面如下
# HTMLTestRunner.py
# 第416行開始就是產生report的html語法 # 第一步 在header_row先加入一個"Description"的欄位 # 接著在"Total"那一列需加入一個空白欄位 # 如果是想顯示Class Unittest Module的docstring,需再產生class report template的腳本先新增一個%(docstring)s的變數欄位 # 這邊的%(docstring)s 可以自行定義 # 如果是想顯示每個unitest function的docstring需在產生unittest report template的腳本新增一個%(docstring)s的變數欄位 # 因為產生unittest report的有分有output及沒有output,所以兩個地方要改 # 一樣這邊的%(docstring)s 可以自行定義 # 我們這邊就要在_generate_report function裡,去新增Class Unittest Module的docstring的邏輯處理,我們建立了一個docstring的變數去接cls.__doc__,並把這變數塞進row的dict裡,這樣在產生class report 就可以直接取用key為docstring的變數值了 # 在_generate_report_test function則是要處理產生unittest function的docstring部分,一樣建立了一個docstring變數去接t._testMethodDoc,塞進row的dict裡,這樣在產生unittest report的時候,就可以直接用docstring的變數值,到這邊就大功告成囉! |
留言
張貼留言