Unittest介紹、單元測試用例的組織、測試用例的執行、測試用例的跳過
Unittest介紹
為什么要學習單元測試框架
測試用例的組織與運行需要單元測試框架的參與,從而滿足不同測試場景的需要,單元測試框架提供了豐富的比較方法:實際結果與預期結果的對比==測試結果 單元測試框架提供了豐富的日志:給出測試用例失敗與通過的數目及執行失敗的原因
常見的單元測試框架有哪些
Doctest、unittest、pytest、nose等等
Java--》junit(testng)、C++--》 googleTest、c#--》nunit ? xunit
Unittest核心組件
Testcase:一個 testcase 就是一個測試用例。Setup(測試環境的準備)、run(測試執行)、teardown(測試環境的還原)。 Testsuite(集合或套件):多個測試用例的集合就是 suite,一個suite可以包含多個測試用例,也可以嵌套 suite。 TestLoader:用來加載 testcase到testsuite 中的。 TestTestRunner:用例執行測試用例(run 方法),測試結果會保存在 TestTestresult 中。 fixture:一個測試用例環境的搭建和銷毀。
Unittest單元測試用例的組織
構建單元測試用例 場景:以字符串替換舉例
構建測試套件(優化測試用例)
單元測試用例的增多,在各個測試代碼中會有很多相似的操作,考慮setUp(測試環境的準備)、tearDown(測試環境的還原)
組織多個測試用例(深度優化測試用例)
測試用例的繼續優化:所有的測試用例不需要都用單獨的類進行存放,該方式比較耗時,通過test開頭的函數來存放測試用例。
構建測試套件
多個測試用例的集合就是suite,一個suite可以包含多個測試用例,也可以嵌套suite。
執行部分測試用例
執行某測試類下的全部測試用例,unittest模塊中提供一個makesuite
?
?
多個測試類的控制
執行測試
首先將StringReplaceTestCase放在單獨的一個py文件中StringReplace.py 將注釋放在方法內,作為方法的說明。 執行部分測試用例,創建一個test_suite.py,用戶控制測試用例的執行 運行全部測試用例。
測試用例的跳過
修改StringReplace文件,理解skip、skipif、skipunless
Unittest框架總結
setUp()方法用于測試用例執行前的初始化工作。如測試用 例中需要訪問瀏覽器,可以在setUp中實例化瀏覽器驅動。 tearDown():tearDown()方法用于測試用例執行之后的善后工作、關 閉瀏覽器。
斷言方法:在執行測試用例的過程中,最終用例是否執行通過,是通 過判斷測試得到的實際結果和預期結果是否相等決定的。 assertEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,相等則測試用例通 過。 assertNotEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,不相等則測試 用例通過。 assertTrue(x,[msg='測試失敗時打印的信息']):斷言x是否True,是True則測試用例通過。
addTest(): 方法是將測試用例添加到測試套件中。?
run(): 方法是運行測試套件的測試用例,入參為suite測試套件。