unittest框架及整合測試報告

2021-09-26 21:19:19 字數 1753 閱讀 3007

import time

import unittest

from base.box import email, htmlemailattachment

from base.html_test_runner import htmltestrunner

class testrunner:

def runner(self):

'''挑選用例執行'''

# 例項化testsuite()類,建立suite測試套件

suite = unittest.testsuite()

# 載入用例到測試套件中,cases為用例所在的模組

suite.addtests(unittest.testloader().discover('cases',pattern='login_testec.py'))

suite.addtests(unittest.testloader().discover('cases.user',pattern='add_address_test.py'))

suite.addtests(unittest.testloader().discover('cases.user',pattern='reg_user_test.py'))

# 新增單個用例

# suite.addtest(logintest('test_login_fail_0_admin'))

# 建立html報告檔案

t = time.strftime('%y-%m-%d_%h-%m-%s')

report_path = r'reports\ranzhi_report_%s.html' %t

report_file = open(report_path,mode='wb')

# 引入第三方工具htmltestrunner執行用例和生成報告內容

test_runner = htmltestrunner(stream=report_file,

title='ecshop自動化測試報告',

description='報告的詳細內容:')

# 執行測試用例

test_runner.run(suite)

# 關閉檔案

report_file.close()

# 傳送報告到郵箱,切記引數為檔案的路徑report_path,不是乙個開啟的檔案report_file

# email().send_email(report_path)

htmlemailattachment().email_attachment(report_path)

if __name__ == '__main__':

testrunner().runner()

unittest.texttestrunner(verbosity=2).run(tests)

這裡的verbosity是乙個選項,表示測試結果的資訊複雜度,有三個值

0 (靜默模式): 你只能獲得總的測試用例數和總的結果 比如 總共100個 失敗20 成功80

1 (預設模式): 非常類似靜默模式 只是在每個成功的用例前面有個「.」 每個失敗的用例前面有個 「f」

2 (詳細模式):測試結果會顯示每個測試用例的所有相關的資訊

並且 你在命令列裡加入不同的引數可以起到一樣的效果

加入 --quiet 引數 等效於 verbosity=0

加入--verbose引數等效於 verbosity=2

什麼都不加就是 verbosity=1

UnitTest測試框架

unittest是目前應用都相對較高的測試框架之一,主要用於管理測試用例,最初是應用於單元測試,現在可以進行ui 介面自動化測試。它是python內建的乙個測試框架。unittest包含四大元件 1.匯入環境 import unittest2.unittest有基本語法規則 a.繼承自unittes...

python測試框架unittest(1)

需要測試的 如下 def add city country city,country city and country city country return city and country.title 先寫乙個簡單的測試類 import unittest from city country im...

關於unittest測試框架的使用

一直用的是pytest,公司介面自動化用的是unittest,孰勝孰劣不好分析,但是都要學習,適應環境才能得到提高。testcase是測試用例類,所有執行用例的類都要繼承unittest.testcase類 class test unittest.testcase 每乙個繼承unittest.tes...