unittest單元測試框架不僅可以適用于單元測試,還可以適用WEB自動化測試用例的開發(fā)與執(zhí)行,該測試框架可組織執(zhí)行測試用例,并且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。有關python和unittest的基礎知識部分就不細說了,大家可自行百度進行深入了解哦,以下是整個unittest四個比較重要的概念。
成都創(chuàng)新互聯主要從事成都做網站、網站制作、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務云龍,10多年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792
test fixture
test case
test suite
test runner
test fixture:簡單來說就是做一些測試過程中需要準備的東西,比如創(chuàng)建臨時的數據庫、文件和目錄等,其中 setUp() 和 setDown() 是最常用的方法。
test case:用戶自定義的測試case的基類,調用run()方法,會依次調用setUP方法、執(zhí)行用例的方法、tearDown()方法。
test suite:測試用例集合,可以通過addTest()方法手動增加Test Case,也可通過TestLoader自動添加Test Case,TestLoader在添加用例時,會沒有順序。
test runner:運行測試用例的驅動類,可以執(zhí)行TestCase,也可執(zhí)行TestSuite。執(zhí)行后TestCase和Testsuite會自動管理TestResult。
下面貼上簡單unittest的示例代碼:
import unittest
import HTMLTestRunner
import time
class TestCases(unittest.TestCase):
def setUp(self):
print("每一條case執(zhí)行之前都會執(zhí)行這個方法")
def tearDown(self):
print("每一條case執(zhí)行之后都會執(zhí)行這個方法\n")
def test_testcase1(self):
print("這是一條測試用例case1")
a = "hello"
try:
self.assertTrue(a.isalpha())
print("測試通過")
except Exception as e:
print("出錯啦,錯誤結果是%s" % e)
print("failed")
raise e
def test_testcase2(self):
print("這是一條測試用例case2")
b = "123"
try:
self.assertTrue(b.isalpha())
print("測試通過")
except Exception as e:
print("出錯啦,錯誤結果是%s" % e)
print("failed")
raise e
def test_testcase3(self):
print("這是一條測試用例case3")
c = " "
try:
self.assertTrue(c.isalpha())
print("測試通過")
except Exception as e:
print("出錯啦,錯誤結果是%s" % e)
print("failed")
raise e
'''
if __name__ == "__main__":
unittest.main()
寫上這段代碼可以在命令行直接運行model.py,而且用例全部執(zhí)行
'''
"""
加載測試用例,方法不僅這種,還有利用loader的方法
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestCases))
or
suite.addTest(loader.loadTestsFromModule(model))
"""
suite = unittest.TestSuite()
# suite.addTest("test_testcase2") # 這里我寫錯了,要加上模塊
suite.addTest(TestCases('test_testcase3'))
"""
指定測試報告的路徑并且定義報告名稱格式
"""
report_dir = "../Test report"
now = time.strftime("%Y-%m-%d %H-%M-%S")
reportname = report_dir + "/" + now + " Test report.html"
"""
運行用例并生成測試報告
"""
with open(reportname, "wb+") as file:
runner = HTMLTestRunner.HTMLTestRunner(file, 2, title="Model test report",
description="Hello testers! This is the description of Model test"
"report")
runner.run(suite)
unittest模塊小結:
關于這個模塊,以前自己學習這個模塊的時候,就不是很懂,這兩天總算是略有收獲。我在做示例時候有了新的發(fā)現:不能把斷言放到try語句中并且是可以被except的異常類包含的,否則就不能通過斷言來設置測試用例的結果。
睿江云官網鏈接:http://www.eflycloud.com/#register?salesID=6DGNUTUAV
網站欄目:Python系列之初識unittest
分享地址:http://aaarwkj.com/article10/jeghgo.html
成都網站建設公司_創(chuàng)新互聯,為您提供電子商務、用戶體驗、營銷型網站建設、網頁設計公司、網站設計公司、商城網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯