selenium之 輸出報告,對HTMLTestRunner進行樣式調整後的示例
阿新 • • 發佈:2019-02-18
修改後HTMLTestRunner下載連結:下載連結
因為覺得HTMLTestRunner原來的樣式太難看,而且都是英文的報告,故而對其進行了一些小小的改動,使其輸出中文報告,樣式也用bootstrap做了點調整,下面用個示例展示下:
# -*- coding: utf-8 -*-
import unittest
class ExampleCase1(unittest.TestCase):
u'''此class包含兩個用例:add - ok, minus - FAIL'''
def setUp(self):
self.a = 4
self.b = 3
def test_add(self):
u'''用例1,add,此用例成功通過'''
self.assertEqual(self.a + self.b, 7)
def test_minus(self):
u'''用例2,minus,此用例執行失敗,4-3!=2'''
print u'中文xxxxxxxxxxxxxxxxxxxx'
self.assertEqual(self.a - self.b, 2)
class ExampleCase2(unittest.TestCase):
u'''此class包含一個用例:plus - ERROR'''
def setUp(self):
self.a, self.b = 4, 3
def test_plus(self):
u'''用例3,plus,此用例執行出錯,因為c未定義'''
self.assertEqual(self.a * self.b, c)
class ExampleCase3(unittest.TestCase):
u'''此class包含一個用例:divide - ok'''
def setUp(self):
self.a, self.b = 4, 2
def test_devide (self):
u'''用例4,divide,此用例執行成功'''
self.assertEqual(self.a / self.b, 2)
if __name__ == '__main__':
from HTMLTestRunner import HTMLTestRunner
report_title = u'Example用例執行報告'
desc = u'用於展示修改樣式後的HTMLTestRunner'
report_file = 'D:\\ExampleReport.html'
testsuite = unittest.TestSuite()
testsuite.addTest(ExampleCase1("test_add"))
testsuite.addTest(ExampleCase1("test_minus"))
testsuite.addTest(ExampleCase2("test_plus"))
testsuite.addTest(ExampleCase3("test_devide"))
with open(report_file, 'wb') as report:
runner = HTMLTestRunner(stream=report, title=report_title, description=desc)
runner.run(testsuite)
執行後產生報告如下圖:
主要的修改有:
- 報告內容改成中文
- 簡單調整下樣式
- 原來報錯資訊太長會出現橫向滾動條,改為折行顯示
同時使用時注意幾個細節:
- 在每個class和testcase method第一行新增段落註釋,會被當做對這個用例的描述,在報告中輸出,這樣報告看起來更清晰漂亮一些。
- 所有的控制檯輸出資訊都會被捕捉並輸出到報告中,所以適當直接用print輸出一些輔助資訊,能夠讓報告可讀性更強
- 註釋以及print的資訊含中文,則要用unicode形式輸出,即引號前加u的形式