JaCoCo是EclEmma團隊基於多年覆蓋率庫使用經驗總結而研發的一個開源的Java代碼覆蓋率庫。
html
在工程的buid.gradle文件中添加以下內容:web
//Applying the JaCoCo plugin plugins { id 'jacoco' } // Configuring JaCoCo plugin settings jacoco { toolVersion = "0.8.4" //reportsDir = file("$buildDir/customJacocoReportDir") } //Configuring test task jacocoTestReport { reports { xml.enabled false csv.enabled false html.enabled true //html.destination file("${buildDir}/jacocoHtml") } } check.dependsOn jacocoTestReport
編譯完成後會在 ${buildDir}/build/reports/jacoco下生成報告。app
若是在Spring Boot的框架下運行,須要在build.gradle中加下面一段,不然執行jacocoTestReport task會被skipped。框架
tasks.withType(Test) { scanForTestClasses = false include "**/*Test.class" }
在父子工程的buid.gradle文件中添加以下內容,注意父和子都要添加:webapp
//Applying the JaCoCo plugin apply plugin:'jacoco' // Configuring JaCoCo plugin settings jacoco { toolVersion = "0.8.4" //reportsDir = file("$buildDir/customJacocoReportDir") } //Configuring test task jacocoTestReport { reports { xml.enabled false csv.enabled false html.enabled true //html.destination file("${buildDir}/jacocoHtml") } } check.dependsOn jacocoTestReport
編譯完成後會在對應的子工程的 ${buildDir}/build/reports/jacoco下生成報告。maven
在工程的pom.xml文件中添加以下內容:單元測試
<build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.4</version> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>jacoco-site</id> <phase>package</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
執行Run As Maven build:測試
clean install
在項目target/site/jacoco目錄下找到index.html文件,便可查看報告。gradle
Maven多模塊是指存在父子關聯的項目,這類項目中存在多個pom.xml文件,父項目pom.xml文件中包括多個<module>標籤,指明它的子模塊有哪些,子項目pom.xml中能繼承父項目配置的依賴,經過<parent>標籤能知道它的父模塊是誰。ui
在多模塊項目中找到父pom.xml文件,添加以下內容:
<build> <pluginManagement> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.4</version> </plugin> </plugins> </pluginManagement> </build>
該模塊添加全部要進行單元測試的子工程的依賴,例如,新增一個jacoco-coverage的子模塊,在pom.xml文件裏添加以下內容:
增長<dependency>指定統計哪些module
<dependencies> <dependency> <groupId>org.sonatype.mavenbook.multi</groupId> <artifactId>simple-weather</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.sonatype.mavenbook.multi</groupId> <artifactId>simple-webapp/artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
添加jacoco-maven-plugin
<build> <plugins> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.4</version> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <phase>verify</phase> <goals> <goal>report-aggregate</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
<modules>
<module>simple-weather</module>
<module>simple-webapp</module>
<module>jacoco-coverage</module>
</modules>
執行Run As Maven build:
clean install
在子項目jacoco-coverage生成的target/site/jacoco-aggregate目錄下找到index.html文件並打開便可查看報告。
如下給出一個官網提供的報告: