Python學習筆記:Unittest框架了解
Unittest單元測試框架不僅可以適用於單元測試,還可以適用於自動化測試用來的開發與執行,該測試框架可執行測試用例,並提供豐富的斷言方法,最終生成測試報告。
一、Unittest常用方法
1、TestCase:
TestCase類,所有測試用例類繼承的基本類
如:
2、main():
使用它可以方便的將一個單元測試模組變為可直接執行的測試指令碼,main()方法可以使用TestLoader類來搜尋所有包含在該模組中以“test”開頭命名的方法,並且執行他們。執行的預設順序是根據ASCII碼的順序載入測試用例並執行。
3、TestSuite()
unittest框架的
4、TextTextRunner()
unittest框架的TextTextRunner()類,通過該類下的run()方法來執行TestSuite所包含的測試用例,引數為TestSuite名稱。
5、defaultTestLoader()
通過該類下面的discover()方法根據測試目錄start_dir匹配查詢測試用例檔案,並將查詢到的測試用例組裝到測試套件中,也可以直接使用run()方法執行discover。
6、skip()
裝飾器,可用裝飾器暫時遮蔽不執行的測試用例。(除錯某一個測試用例時,可以使用裝飾器遮蔽掉其他的測試用例)
(1、@unittest.skip(reason):無條件跳過新增裝飾器的測試,並說明跳過測試的原因
(2、@unittest.skipIf(condition,reason):條件為真時,跳過新增裝飾器的測試,並說明跳過測試的原因
(3、@unittest.skipUnless(condition,reason):條件未假時,跳過測試並說明跳過測試的原因。
(4、@unittest.expectedFailure():測試標記為失敗。
二、TestCase類的常用屬性
1、setUp()
方法用於測試用例執行前的初始化工作。如測試用例需要訪問資料庫,可以在
2、tearDown()
用於測試用例執行後的善後工作。如關閉資料庫連結等
3、assert*()
斷言方法,在執行測試用例時,最終用例是否執行通過,是通過判斷實際結果與預期結果是否相等決定的。
(1、assertEqual(a,b,msg):判斷a,b是否相等,相等測試用例通過;不相等測試用例失敗,msg為失敗時的提示資訊。
(2、assertNotEqual(a,b,msg):判斷a,b是否相等,不相等時測試用例通過;相等時測試用例失敗,msg為測試失敗的提示資訊。
(3、assertTrue(x,msg):判斷x是否為True,是True測試用例通過,否則失敗,msg為失敗的提示資訊。
(4、assertFalse(x,msg):判斷x是否為False,是False時測試用例通過,否則失敗,msg為失敗的提示資訊。
(5、assertIs(a,b,msg):判斷a是不是b,是則通過,否則失敗
(6、assertNotIs(a,b,msg):判斷a不是b,不是通過,否則不通過
(7、assertIsNone(x,msg):判斷x是否是None,是None測試用例通過
(8、assertIsNotNone(x,msg):判斷x是否是None,不是None測試用例通過
(9、assertIn(a,b,msg):判斷a在b中,在則通過
(10、assertNotIn(a,b,msg):判斷a在b中,不在則通過
(11、assertIsInstance(a,b,msg):判斷a是b的一個例項,是則通過
(12、assertIsNotInstance(a,b,msg):判斷a是b的一個例項,不是則通過
三、TestSuite類的主要屬性
addTest():addTest()方法是將測試用例新增到測試套件中。
如:
四、TextTextRunner的常用屬性
run():run()方法是執行測試套件中的測試用例
如:
五、defaultTestLoader()的常用屬性
discover()方法根據測試目錄start_dir匹配查詢測試用例檔案
如:discover(start_dir,pattern='',top_level_dir=None)
start_dir:要測試的模組名或測試用例目錄;
pattern='':表示用例檔名的匹配原則;
top_level_dir=None:測試模組的頂層目錄;