用maven進行測試


  maven的重要職責之一就是自動運行單元測試,它通過maven-surefire-plugin與主流的單元測試框架junit和testng集成,並且能夠自動生成豐富的結果報表。

  maven並不是一個單元測試框架,他只是在構建執行打特定的生命周期階段的時候,通過插件來執行JUnit或testNG的測試用例,這個插件就是maven-surefire-plugin,也叫做測試運行器。maven-surefire-plugin會自動執行測試源碼路勁下(src/test/java)的所有符合以下命名模式的測試用例

  **/Test*.java:任何子目錄下的所有命名以Test開頭的java類

  **/**Test.java:任何子目錄下的所有命名以Test結尾的java類

  **/**TestCase.java:任何子目錄下的所有命名以TestCase結尾的java類

  只要將測試類按上述模式命名,maven就能自動運行它們,用戶也就不再需要定義測試集合(testsuite)來聚合測試用例了。

  當然也可以自定義來包含一些不符合上述命名規則的測試類,以下定義以Tests結尾的用例:

1
2
3
4
5
6
7
8
9
10
<plugin>
  <groupId>org.apache.maven.plugin</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.5<version>
  <configuration>
    <includes>
       <include>**/*Tests.java</include>
    </includes>
  </configuration>
</plugin>

      日常工作中,軟件開發人員總有很多理由來跳過單元測試,“我敢保證這次改動不會導致任何測試失敗,測試運行太耗時了,暫時跳過一,有持續集成服務跑所有測試呢,我本地就不執行啦。在大部分情況下,這想法都是不對的。任何改動都要交給測試去驗證,測試運行耗時過長應該考慮優化測試,更不要完全依賴持續集成服務來報告錯誤,測試錯誤應該盡早在盡小范圍內發現,並及時修復。

  maven同時也可以通過設置skipTest來跳過測試。

測試報告:

  surefire會在target-report下生成兩種格式的錯誤與報告,簡單文本格式和支持JUnit的XML格式。

測試覆蓋率報告:

  cobertura是一個開源的測試覆蓋率統計工具,使用時添加插件cobertura-maven-plugin

testng:

  可以使用testing.xml的文件,來配置想要運行的測試集合。然后再pom文件里在配置使用該文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM