その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Java でテストカバレッジを取る (JaCoCo編)

一種の指標になるので,なんだかんだでテストカバレッジは取りたくなります.

Javaでそれをどうやるかをサッと検索すると,Coberturaを使う方法とJaCoCoを使う方法が引っかかると思うんですが,Coberturaの方はJava8のコードが含まれているとJavaNCSSの兼ね合いで発狂して使えなくなったり,Mavenのtestライフサイクルにfindbugscheckstyleを含めると使えなくなったりと色々不便なので,JaCoCoを使う方法でやることになっていきます.

Mavenでどうやるかというと,pom.xml

<plugin>
	<groupId>org.jacoco</groupId>
	<artifactId>jacoco-maven-plugin</artifactId>
	<version>0.7.4.201502262128</version>
	<executions>
		<execution>
			<id>prepare-agent</id>
			<goals>
				<goal>prepare-agent</goal>
			</goals>
		</execution>
	</executions>
</plugin>

という風に追記してやると良いってcoveralls-maven-pluginに説明されていましたのでそのようにやります.

そして

$ mvn clear test jacoco:report

などとしてやると,target/site/jacoco 以下にカバレッジレポートが出力されます.

f:id:moznion:20150425164600p:plain

コードレベルのカバーレポートも出て可愛い.

f:id:moznion:20150425164624p:plain

そしてこの結果をcoveralls-maven-pluginを使ってcoverallsに送りつける事も可能です.便利ですね.