EvoSuite是由Sheffield等大學聯合開發的一種開源工具,用於自動生成測試用例集,生成的測試用例均符合Junit的標準,可直接在Junit中運行。得到了Google和Yourkit的支持。
隨着單元測試的AI化,衡量單元測試的標準變得尤其重要,那麼分析單元測試的代碼覆蓋率是一種行之有效的方法。Cobertura 是一種開源工具,它通過檢測基本的代碼,並觀察在測試包運行時執行了哪些代碼和沒有執行哪些代碼,來測量測試覆蓋率。Cobertura提供了Ant和Maven的執行方式,並且Cobertura要比JaCoCo配置和使用起來更方便。
EvoSuite和Cobertura的集成
EvoSuite可以和Cobertura無縫集成,只需要在配置文件中加入如下配置,就可以了(在平行於build下):
-
<reporting>
-
<plugins>
-
<plugin>
-
<groupId>org.codehaus.mojo</groupId>
-
<artifactId>cobertura-maven-plugin</artifactId>
-
<version>2.7</version>
-
</plugin>
-
</plugins>
-
</reporting>
同時需要在build的插件中加入
-
<plugin>
-
<groupId>org.codehaus.mojo</groupId>
-
<artifactId>cobertura-maven-plugin</artifactId>
-
<version>2.7</version>
-
<configuration>
-
<instrumentation>
-
<ignores>
-
<ignore>com.example.boringcode.*</ignore>
-
</ignores>
-
<excludes>
-
<exclude>com/example/dullcode/**/*.class</exclude>
-
<exclude>com/example/**/*Test.class</exclude>
-
</excludes>
-
</instrumentation>
-
</configuration>
-
<executions>
-
<execution>
-
<goals>
-
<goal>clean</goal>
-
</goals>
-
</execution>
-
</executions>
-
</plugin>
就可以在MavenProjects插件中看到Cobertura的使用插件了。
其中:
-
cobertura:help 檢查cobertura插件的幫助(也可以check配置是不是正確)
-
cobertura:clean 情況cobertura運行結果
-
cobertura:check 運行cobertura的檢測任務
-
cobertura:cobertura 運行cobertura的檢查任務並生產報告,報告在/target/site/cobertura下
-
cobertura:dump-datafile cobertura的datafile dump Mojo
-
cobertura:instrument 檢查編譯過的classes