這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇

博為峰網校發表於2020-07-17
      DevOps是一種實踐方法,旨在保證高質量的前提下實現研發運維一體化,從而大幅縮短系統變更從提交到部署生產環境的時間。其中,持續整合是DevOps中非常重要的一環,它涉及整合多個開發人員的程式碼,並不斷編譯和測試,以便儘可能早的識別缺陷。自動化是持續整合的核心,工具鏈整合是實現自動化的手段和方法。本文主要講述DevOps工具鏈整合中如何實現單元測試工具的整合。
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
  單元測試工具整合的方法
   單元測試概述
   單元測試是指對軟體中的最小可測試單元進行檢查和測試,對於單元測試中單元的含義,一般來說,可根據實際情況去判定其具體含義,如C語言中單元指一個函式,Java和C#裡單元指一個類等等。單元測試是在軟體開發過程中進行的最低階別的測試活動,可以在與程式其他部分相隔離的情況下進行測試。
     整合條件
  持續整合流水線包含單元測試,首先要求研發人員在完成功能開發後,編寫對應的功能測試方法或者函式測試方法(單元測試方法),對於規模較大的專案,可以隨著功能開發進度逐步編寫單元測試方法或者按照功能的優先順序和重要程度有選擇的編寫單元測試方法。
  對於Java開發專案,建議使用Junit工具進行單元測試編寫,C#開發專案使用Nunit工具進行單元測試編寫。目前這兩個單元測試工具TFS平臺都有較好的支援,故可以方便的納入TFS持續整合流水線中。
   核心價值
  透過在持續整合流水線中納入單元測試活動,可以在開發階段更快的發現BUG,並且修復他們的成本很低。在軟體開發的後期階段,Bug的發現和修復將變得更加困難,成本會指數級增長;因此應用系統儘可能早的編寫單元測試方法和整合對於提高軟體質量具有非常重要的意義。
   單元測試工具整合的實踐
工具鏈整合框架
  為做好數字化轉型,著力構建研發運維一體化流程,企業正在打造高效完整的DevOps工具鏈,貫穿開發、測試、運維各環節,搭建支撐持續整合、自動化測試、持續交付的工具鏈,實現研發-運維生命週期全流程的自動化:
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
單元測試整合的兩種場景
  雲下整合
  基於TFS平臺實現了兩大主流開發語言(C#、Java)的單元測試工具(Nunit、Junit)持續整合,只要專案組完成首個單元測試方法編寫並本地執行透過後,即可在持續整合流程中加入單元測試過程:
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
  在TFS工具中建立持續整合流水線(生成定義),並透過新增編譯、單元測試等步驟,即可實現程式碼拉取、下載、編譯、執行單元測試方法的自動化:
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
  目前,包含單元測試過程的流水線支援多種方式自動化執行:程式碼提交時自動觸發、定時觸發、拉取請求(程式碼歸併)時自動觸發:
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
  單元測試結果以及程式碼覆蓋率情況(支援Cobertura、Jacoco)可以透過郵件以及頁面展示的方式快速直觀的反饋給開發人員:
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
 雲上整合
  雲端計算在企業應用逐步廣泛,使用雲進行構建、測試、部署一體化,具備高效、快捷、一致等優勢。DevOps持續整合流水線可以採用TFS為入口平臺,由TFS觸發Jenkins在雲上進行編譯、單元測試,並將單元測試結果、程式碼覆蓋率結果回傳至TFS釋出:
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
這個工具憑什麼風靡全球?DevOps工具鏈整合之單元測試整合篇
  注意:雲上單元測試整合,需要在雲上流水線指令碼中加入呼叫單元測試工具的語句,例如:
stage('Unit Test') {
  steps {
  sh "${mvnCmd} clean test cobertura:cobertura"
  //請依據實際情況修改pom檔案的路徑
  step([$class: 'JUnitResultArchiver', testResults: '**/target/surefire-reports/TEST-*.xml'])
  //請提前在程式碼的pom檔案中加上maven-surefire-plugin
  }
  結束語
  經驗表明具備完整單元測試方法的研發專案有更高的軟體質量,無論什麼時候對程式碼進行修改都可以進行單元迴歸測試,單元測試整合自動化大大節省了研發人員的寶貴時間,從而把精力集中在單元測試之間的互動作用以及全域性的功能實現上。

加我VX:17324089390  回覆關鍵詞“測試”領取限量軟體測試學習資料哦~~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2705316/,如需轉載,請註明出處,否則將追究法律責任。

相關文章