天天看點

odoo單元測試覆寫率

單元測試覆寫率

業務需求:

·減免測試人員正常操作BUG

  ·提高程式員代碼品質
           

正常測試代碼流步驟

預制demo資料

建立test_name.py

繼承測試公共類(transcationCase)

定位單據以及預定需要的資料

執行單據所有按鈕

執行Model裡所有方法

manifest加載相關檔案路徑

啟動測試

檢視結果

一、 預制Demo資料

在被測子產品下建立demo空檔案,或者放在data下

示例代碼:

odoo單元測試覆寫率
odoo單元測試覆寫率

2、預制資料。

提前制定好目前子產品裡所有模型的資料。

如果子產品涉及到範圍外的基礎資料,也是需要預制的,或者在需要的時候引用原有的Demo

示例代碼:

odoo單元測試覆寫率

若範圍外的資料需要執行某個操作(僅一次),則可用屬性function

示例代碼:

odoo單元測試覆寫率

二、 建立test_name.py

命名必須以test_開頭

odoo單元測試覆寫率

三、 繼承公共測試類

odoo單元測試覆寫率

四、 定位單據以及預定需要的資料

這些資料員來源于Demo預制的資料(不限于目前子產品)。直接ref(“IDName”).id

odoo單元測試覆寫率

五、 測試執行方法入口

test_name.py。 至少有一個以test_開頭方法作為執行入口。

但是代碼要遵循規範性開發。故同一代碼功能放置在一個方法。

odoo單元測試覆寫率

六、 執行按鈕代碼

先定位到某個單據,然後直接調用某個按鈕方法即可

如果方法有參數需要傳遞,是需要進行處理的。

判斷該方法執行的結果是否符合預期結果

如:執行稽核按鈕,狀态變為confirmed

odoo單元測試覆寫率

七、 執行Model(模型)裡面的方法

提高代碼的覆寫率就必須讓所有的代碼全部被執行。

注意:有些代碼是有if 條件判斷的,這時候需要制造資料滿足該條件,使得該條件下的方法被執行。

八、 manifest加載demo 文檔

odoo單元測試覆寫率

九、 運作測試

pip install coverage;

在項目檔案夾下執行coverage run –source=module(子產品路徑)start –c conf(配置檔案路徑)-d db_name –i module –test-enable –stop-after-init –log-level=test;建立資料庫便于加載demo資料,第二次執行的時候,則可以把-i 改為 - u

odoo單元測試覆寫率

用coverage report進行快速檢視覆寫率,coverage html在目前工作檔案夾下生成hrmlcov檔案夾,包含一系列html檔案,可檢視覆寫率及代碼運作及未運作部分:

odoo單元測試覆寫率

也可以去目前工程目錄下查找htmlcov

odoo單元測試覆寫率
odoo單元測試覆寫率