小編的主機:mac
一、引入HTMLTestRunner包
1、下載HTMLTestRunner.py,已上傳到網盤,點擊下載
2、將HTMLTestRunner.py復制到python安裝目錄的Lib文件夾下。
可能有的人不知道python安裝地址的Lib文件夾在哪里。小編用的是mac,放的地址為:/資源庫/Frameworks/Python.framework/Versions/3.6/lib/python3.6
因為看見里面有很多.py結尾的文件,常用到的os.py都在里面,放這里准沒錯。
二、用unittest寫測試用例
具體可參考https://docs.python.org/2/library/unittest.html
三、main方法中生成測試報告
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")
四、執行main方法
注意執行時一定不要右鍵 Run "Unittests in xxx" 因為這個執行的是上面寫的繼承自unittest的類,例如我這里就是make。
可以試試哦,控制台不會打印出main方法里的print后的語句。
執行方法見另一篇博客:Python 同一文件中,有unittest不執行“if __name__ == '__main__”,不生成HTMLTestRunner測試報告的解決方案
五、查看html報告
(1)在項目下可以看見生成的測試報告,后綴為.html

(2)在chrome打開如圖:

