我們前面已經講過了unittest的常用方法和結合ddt做資料驅動,接下來我們就剩下如何把前面用到的方法都封裝起來然后放到框架中才算是框架中的一部分,之前寫的都是像小學作文一樣,流水仗,哈哈哈 好了接下來就開始搞如何封裝吧
1、提到封裝很多小伙伴就很怕,其實封裝很簡單的,就是我們把前面說到的一個個方法封裝起來放在一個類中,當我們使用的時候直接呼叫這個類下面我們寫好的一個個的方法就行,說到這可能還是很多小伙伴不懂,這不要緊,代碼敲多了,自然而然的就懂封裝思想了,所以不要把封裝想的太難,這里就不要糾結會不會這個問題,所以我們就不在繼續說這個話題了,直接上代碼,
import os
import unittest
from HTMLTestRunnerHh import HTMLTestRunner
from datetime import datetime
# 這塊先空著 后面我們有大用處
@classmethod
def setUpClass(cls):
pass
# 這塊先空著 后面我們有大用處
@classmethod
def tearDownClass(cls):
pass
# 這塊先空著 后面我們有大用處
def setup():
pass
# 這塊先空著 后面我們有大用處
def teardown():
pass
# 獲取測驗用例
def getTestCases():
loader = unittest.TestLoader()
start_dir = os.path.dirname(os.path.abspath(__file__))
suite = loader.discover(start_dir)
return suite
# 時間戳,獲取當前時間,主要是用來給自動生成的測驗報告命名的
def getNowTime():
# 注意匯入的包是datetime.datetime(date)
return datetime.now().strftime('%Y%m%d%H%M%S')
# 獲取測驗報告
def getReport():
start_dir = os.path.dirname(os.path.abspath(__file__))
# 獲取報告目錄
report_dir = os.path.join(start_dir,'report')
# 首先判斷一下報告目錄是否存在,存在就直接獲取,不存在就先創建
if not os.path.exists(report_dir):
os.mkdir(report_dir)
# 拼接一個完整的測驗報告名字 報告目錄,時間戳+.html后綴
return os.path.join(report_dir, getNowTime() + '.html')
# 運行方法
def run():
with open(getReport(),'wb') as f:
runner = HTMLTestRunner(f,
verbosity=2,
title='浩浩的測驗報告',
description='浩浩是單身狗',
tester='浩浩')
runner.run(getTestCases())
if __name__ == '__main__':
run()
運行,看一下結果:

看一下會自動創建report目錄,并且以時間戳的命名方式生成測驗報告,
當然,我這樣封裝只是給各位小伙伴一個模板,也可以自己封裝,畢竟我也是個菜鳥,大佬請忽略
好了到這里就整個unittest的講解就已經結束了,剩下的就得需要各位小伙伴作業中拿來實戰了,感覺作者寫的還可以的就關注一下作者吧,后面有更多的干貨哦,想了解更多干貨的請加作者微信哈,
微信:18547673653
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/258191.html
標籤:python
