Python用HTMLTestRunner生成html測試報告 Python 同一文件中,有unittest不執行「if __name__ == '__main__」,不生成HTMLTestRunne

小編的主機:machtml

 

1、引入HTMLTestRunner包python

  一、下載HTMLTestRunner.py,已上傳到網盤,點擊下載chrome

  二、將HTMLTestRunner.py複製到python安裝目錄的Lib文件夾下。函數

  可能有的人不知道python安裝地址的Lib文件夾在哪裏。小編用的是mac,放的地址爲:/資源庫/Frameworks/Python.framework/Versions/3.6/lib/python3.6 post

  由於看見裏面有不少.py結尾的文件,經常使用到的os.py都在裏面,放這裏準沒錯。單元測試

 

2、用unittest寫測試用例測試

  具體可參考https://docs.python.org/2/library/unittest.htmlui

 

3、main方法中生成測試報告url

 

import unittest
import HTMLTestRunnerNew
import time
import os

class make(unittest.TestCase):

    def __init__(self, methodName='runTest'):
        super().__init__(methodName)
        print("構造函數")

    def test_aaa(self):
        print("aaa")
        self.assertEqual(1, 2)

    def test_bbb(self):
        print("bbb")
        self.assertEqual(2, 2)

    def test_ccc(self):
        print("ccc")
        self.assertEqual(3, 2)

if __name__ == '__main__':
    print("main-start")
    s = unittest.TestSuite()  # 實例化
    s.addTests(unittest.TestLoader().loadTestsFromTestCase(make))  # 加載用例
    now = time.strftime('%Y-%m-%d %H%M%S')
    print("main-getcwd")
    filename = open(os.getcwd() + '/testResult_report' + now + '.html', 'wb')
    runner = HTMLTestRunnerNew.HTMLTestRunner(
        stream=filename,
        title='單元測試報告',
        description='單元測試報告',
        tester='youreyebows')
    runner.run(s)
    print("main-stop")

  

4、執行main方法spa

  注意執行時必定不要右鍵 Run "Unittests in xxx" 由於這個執行的是上面寫的繼承自unittest的類,例如我這裏就是make。

  能夠試試哦,控制檯不會打印出main方法裏的print後的語句。

  執行方法見另外一篇博客:Python 同一文件中,有unittest不執行「if __name__ == '__main__」,不生成HTMLTestRunner測試報告的解決方案

 

5、查看html報告

  (1)在項目下能夠看見生成的測試報告,後綴爲.html

  

  (2)在chrome打開如圖:

   

相關文章
相關標籤/搜索