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的變數值,到這邊就大功告成囉!

留言

這個網誌中的熱門文章

Python - 計算特定目錄底下的檔案以及目錄數量

PHP - 產生qrcode

devstack安裝all in one openstack(pike)