Python單元測試報告框架PyTestReport


原文鏈接

如果你是Java棧的同學,那麼你可能知道extent report測試報告框架。而Python你可能知道HTMLTestRunner測試報告框架。今天要介紹的則是基於HTMLTestRunner的新測試報告框架PyTestReport。

如果Python語言界已經有了HTMLTestRunner,那麼爲什麼還要一個PyTestReport測試框架呢?原因很簡單,因爲與Extent Report框架相比,HTMLTestRunner在界面的優越性上面還是有不少的差距,而PyTestReport則意在成爲Python語言中的Extent Report

開局一張圖

PyTestReport Sample

這個就是PyTestReport的默認主題模板,雖然看上去跟Extent Report的衆多模塊相比,還是稍有遜色顯得不是很專業。但是這並不影響我們介紹這款框架,因爲它在基於HTMLTestRunner進行改良之後開始支持模板擴展了,也就是說將來它可以擁有和Extent Report同步樣式的報告模板。

所以如果你對此框架還有興趣,就一起來看下如果快速的使用和擴展該框架的主題模板。如果你具有較好的CSS功底,那麼歡迎來爲我們的主題模板舔磚加瓦_!開源合作相關請點擊PyTestReport的github地址查看詳情。

安裝

通過pip安裝

pip install PyTestReport 

通過安裝包

可通過發佈的安裝包進行安裝,具體安裝包可在dist目錄查找。

pip install PyTestReport-0.1.X-py3-none-any.whl

通過源碼(最新版本)

pip install git+https://github.com/five3/PyTestReport.git

或者

git clone https://github.com/five3/PyTestReport.git
cd PyTestReport
python setup.py build
python setup.py install

使用

PyTestReport可用通過多種方式運行,分別如下:

  • 單元測試
  • lib庫引入(後續支持)
  • 命令行(後續支持)
  • REST API(後續支持)

單元測試使用樣例

import unittest
import pytestreport

class MyTest(unittest.TestCase):
    def testTrue(self):
        self.assertTrue(True)
        
if __name__ == '__main__':
    pytestreport.main(verbosity=2)

以這種方式執行之後,默認會在當前文件夾下生成一個PyTestReport.html日誌文件,且這個文件名和樣式模板都不可以重新指定的。

注意:這種方式執行時,如果使用Pycharm等IDE,確保不是以IDE的內建單元測試框架來執行的;或者直接通過命令行來執行。

import unittest
from pytestreport import TestRunner

class MyTest(unittest.TestCase):
    def testTrue(self):
        self.assertTrue(True)

if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MyTest))
    
    with open(r'/path/to/report.html', 'wb') as fp:
        runner = TestRunner(fp, title='測試標題', description='測試描述', verbosity=2)
        runner.run(suite)

這種方式適合批量加載和執行測試用例,從測試文件的外部來導入測試用例並執行。這裏可以指定具體的結果文件路徑和測試標識等信息。

這裏使用的是默認模板主題,如果想要使用其它模板主題,可以通過制定模板的主題文件來實現。比如:使用遺留模板的方式如下所示。

from pytestreport import TestRunner
...
runner = TestRunner(fp, title='測試標題', description='測試描述', verbosity=2, 
                    htmltemplate='legency.html', stylesheet='legency.css', javascript='legency.js')

附錄

獲取更多關於Python和自動化測試的文章,請掃描如下二維碼!
關注二維碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章