單元測試覆寫率
業務需求:
·減免測試人員正常操作BUG
·提高程式員代碼品質
正常測試代碼流步驟
預制demo資料
建立test_name.py
繼承測試公共類(transcationCase)
定位單據以及預定需要的資料
執行單據所有按鈕
執行Model裡所有方法
manifest加載相關檔案路徑
啟動測試
檢視結果
一、 預制Demo資料
在被測子產品下建立demo空檔案,或者放在data下
示例代碼:
2、預制資料。
提前制定好目前子產品裡所有模型的資料。
如果子產品涉及到範圍外的基礎資料,也是需要預制的,或者在需要的時候引用原有的Demo
示例代碼:
若範圍外的資料需要執行某個操作(僅一次),則可用屬性function
示例代碼:
二、 建立test_name.py
命名必須以test_開頭
三、 繼承公共測試類
四、 定位單據以及預定需要的資料
這些資料員來源于Demo預制的資料(不限于目前子產品)。直接ref(“IDName”).id
五、 測試執行方法入口
test_name.py。 至少有一個以test_開頭方法作為執行入口。
但是代碼要遵循規範性開發。故同一代碼功能放置在一個方法。
六、 執行按鈕代碼
先定位到某個單據,然後直接調用某個按鈕方法即可
如果方法有參數需要傳遞,是需要進行處理的。
判斷該方法執行的結果是否符合預期結果
如:執行稽核按鈕,狀态變為confirmed
七、 執行Model(模型)裡面的方法
提高代碼的覆寫率就必須讓所有的代碼全部被執行。
注意:有些代碼是有if 條件判斷的,這時候需要制造資料滿足該條件,使得該條件下的方法被執行。
八、 manifest加載demo 文檔
九、 運作測試
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
用coverage report進行快速檢視覆寫率,coverage html在目前工作檔案夾下生成hrmlcov檔案夾,包含一系列html檔案,可檢視覆寫率及代碼運作及未運作部分:
也可以去目前工程目錄下查找htmlcov