unittest單元測試
unittest單元測試框架不僅可以適用於單元測試,還可以適用web自動化測試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。今天就總結下如何使用unittest單元測試框架來進行odoo的自動化測試。
unittest工作原理:
unittest中最核心的四部分是:testcase,testsuite,testrunner,testfixture
(1)乙個testcase的例項就是乙個測試用例。測試用例就是指乙個完整的測試流程,包括測試前準備環境的搭建(setup),執行測試**(run),以及測試後環境的還原(teardown)。元測試(unit test)的本質也就在這裡,乙個測試用例是乙個完整的測試單元,通過執行這個測試單元,可以對某乙個問題進行驗證。
(2)而多個測試用例集合在一起,就是testsuite,而且testsuite也可以巢狀testsuite。
(3)testloader是用來載入testcase到testsuite中的。
(4)texttestrunner是來執行測試用例的,其中的run(test)會執行testsuite/testcase中的run(result)方法
(5)測試的結果會儲存到texttestresult例項中,包括執行了多少測試用例,成功了多少,失敗了多少等資訊。
(6)unittest提供了很多內建的判斷方法,常用斷言如:
判斷返回值相等:self.assertequals(abs(-1), 1)
丟擲keyerror異常:with self.assertraises(keyerror)
丟擲attributeerror異常:with self.assertraises(attributeerror)
接下來,就到了**演示環節。let』s go
1.安裝unittest包,如果有直接引入
2.在模組中定義tests子包,測試檔案必須以test_開頭,不以test開頭的方法不會被認為是測試方法,測試時不會被執行。
3.編寫測試用例
可以利用odoo現有的模組和工具,odoo.tests.common.transactioncase進行編寫。
odoo.tests.common.at_install(flag)
該標誌是乙個布林值,指定測試是否應該 (true)或不應該(false) 在模組安裝期間執行;預設情況下,在安裝模組之後,開始安裝下乙個模組之前執行測試
odoo.tests.common.post_install(flag)
該標誌是乙個布林值,指定測試是否應該在一組模組安裝之後執行。預設情況下,在安裝當前安裝集中的所有模組之後,不會執行測試。
setup()
setup()方法用於測試用例執行前的初始化工作。如測試用例中需要訪問資料庫,可以在setup中建立資料庫連線並進行初始化。如測試用例需要登入web,可以先例項化瀏覽器。
teardown()
teardown()方法用於測試用例執行之後的善後工作。如關閉資料庫連線。關閉瀏覽器。
(**都是直接甩,不好意思)
在openerp.conf中新增引數變數:
官方文件上說只需要新增引數變數就可以,但是測試時候沒有效果,需要配置一下執行引數.
新增指定資料庫:
執行結果:
單元測試之Django單元測試
每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...
測試驅動開發之基礎 單元測試
學習測試驅動開發之前,應當正確理解一下單元測試的概念,學習單元測試之後可以清楚的知道所謂的單元為單一職責的乙個方法即乙個方法只做一件事情,這也符合物件導向的單一職責的原則。因此單元測試的概念可以籠統的理解為 針對乙個工作單元設計的測試。單元測試有各種不同的編寫方式,但所有單元測試有些共同的特徵 1....
iphone開發之單元測試SenTestCase
使用xcode開發很長一段時間了,可是並沒有使用其中支援的單元測試的功能,所以特別留意了一下使用單元測試的方式。l iphone從sdk3.0開始直接支援單元測試,可以建立unit test bundle形式的target。方便了單元測試 的編寫。l還有乙個是用google toolbox for ...