Python中的Unittest框架
Unittest
1.環境
Unittest為Python內嵌的測試框架,不需要特殊配置,僅需要在File---settings---Tools----Python Intergrated Tools下配置框架為Unittest
2.編寫規範
需要匯入 import unittest
測試類必須繼承unittest.TestCase
測試方法以 test_開頭
模組和類名沒有要求
3.Unittest介紹
import unittest
def add(x, y):
return x + y
def sub(x,y):
return x - y
class UnittestDemo(unittest.TestCase):
def setUp(self):
print("I an setup")
def test_add(self):
print("my first unit test demo----add")
self.assertEqual(add(10,1),11,"assert equal")
def test_sub(self):
print("my first unit test demo----sub")
self.assertEqual(sub(10, 1), 9, "assert equal2")
@unittest.skip("i don't want to run this case.")
def test_sub1(self):
print("my first unit test demo----sub1")
self.assertEqual(sub(10, 1), 9, "assert equal3")
def tearDown(self):
print("I an tearDown")
setUp及TearDown
方法級別的,類裡面的每個方法呼叫一次
def setUp(self):
print("I an setup")
setUpClass及tearDownClass
類級別的,類裡面的所有方法僅執行一次
@classmethod
def setUpClass(cls):
print("I an setUpClass")
setUpModule,tearDownModule
模組級別的,執行模組裡面類中的所有方法僅執行一次
4.Unittest使用
import unittest
from unittest_task import UnittestDemo
from HTMLTestRunner import HTMLTestRunner
suite=unittest.TestSuite()#建立用例集合
tests = [UnittestDemo("test_add"), UnittestDemo("test_sub"),UnittestDemo("test_sub1")]
suite.addTests(tests)
with open('HTMLReport.html', 'wb') as fi:
runner = HTMLTestRunner(stream=fi,
title = 'MathFunc Test Report',
description='generated by HTMLTestRunner.',
verbosity=2
)
runner.run(suite)
TestCase
多個測試用例集合在一起,就是TestSuite
TestSuite 無錫看婦科的醫院
多個測試用例集合在一起,就是TestSuite
TestLoader
用來載入TestCase到TestSuite中的
TestRunner
執行測試用例的,測試的結果會儲存到TestResult例項中,包括執行了多少測試用例,成功了多少,失敗了多少等資訊
skip裝飾器
跳過某個用例不執行
@unittest.skip("i don't want to run this case.")
無條件跳過
unittest.skip(reason)
當condition為True時跳過
unittest.skipIf(condition, reason)
當condition為False時跳過
unittest.skipUnless(condition, reason)
self.skipTest('do not run this.')
5.Unittest生成報告
5.1 Unittest生成txt格式報告
if __name__ == '__main__':
suite = unittest.TestSuite()
tests = [TestMathFunc("test_add"), TestMathFunc("test_minus"), TestMathFunc("test_divide")]
suite.addTests(tests)
with open('UnittestTextReport.txt', 'a') as f:
runner = unittest.TextTestRunner(stream=f, verbosity=2)
runner.run(suite)
執行該檔案,就會發現目錄下生成了’UnittestTextReport.txt,所有的執行報告均輸出到了此檔案中。
verbosity引數可以控制執行結果的輸出,0 是簡單報告、1 是一般報告、2 是詳細報告
5.2 Unittest生成html格式報告
with open('HTMLReport.html', 'wb') as fi:
runner = HTMLTestRunner(stream=fi,
title = 'MathFunc Test Report',
description='generated by HTMLTestRunner.',
verbosity=2
)
runner.run(suite)
輸出測試報告為HTML格式,unittest中htmltestrunner匯出測試報告,可以修改htmltestrunner中的測試程式碼
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2654412/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python 自動化測試框架unittestPython框架
- selenium-webdriver(python) (十六) --unittest 框架WebPython框架
- Python中的單元測試框架:使用unittest進行有效測試Python框架
- 【python介面自動化】初識unittest框架Python框架
- python的unittest測試框架的擴充套件淺談Python框架套件
- 介面測試之unittest框架框架
- Python + requests + unittest + ddt 進行介面自動化測試的框架Python框架
- Java 中的 UnitTest 和 PowerMockJavaMock
- python自動化測試框架pytest和unittest區別!!!Python框架
- python介面自動化測試 —— unittest框架suite、runner詳細使用Python框架UI
- Python 的單元測試之 unittestPython
- 四.unittest介面自動化框架介紹框架
- 基於Python的介面自動化-unittest測試框架和ddt資料驅動Python框架
- Python的unittest做引數化測試Python
- 每週一個 Python 模組 | unittestPython
- 記錄python介面自動化測試--unittest框架基本應用(第二目)Python框架
- 肖sir__介面測試之python+rquest+unittest分層自動化框架Python框架
- python django中restful框架的使用PythonDjangoREST框架
- unittest系列(一)unittest簡介和示例
- unittest使用
- unittest系列(三)unittest用例如何執行
- 從入門到放棄:Python+selenium unittest測試框架及基本語法規則Python框架
- Laravel中 FeatureTest和 UnitTest的區別是什麼Laravel
- 『心善淵』Selenium3.0基礎 — 26、unittest測試框架的斷言框架
- Python 自動化測試 必會模組 UnittestPython
- unittest筆記筆記
- unittest例項
- Hadoop中的Python框架的使用指南HadoopPython框架
- Python unittest.TestLoader()類的幾種尋找testcase的方法的使用Python
- unittest系統(八)一文搞定unittest重試功能
- unittest 單元測試框架教程 1-執行測試指令碼框架指令碼
- 『心善淵』Selenium3.0基礎 — 25、unittest單元測試框架框架
- Python中爬蟲框架或模組的區別!Python爬蟲框架
- Python中爬蟲框架或模組的區別Python爬蟲框架
- Python全棧Web(Django框架、模型中的CRUD)Python全棧WebDjango框架模型
- python中web開發框架Django的學習PythonWeb框架Django
- unittest斷言-assertIn
- Mock HttpContext in UnitTestMockHTTPContext