ここでは、MavenプロジェクトでJaCoCoを活用してテストカバレッジを計測し、Jenkins上で可視化する手順を説明します。
まず、src/main/javaに以下の성능 ElapsedTest.javaクラスを作成します。このクラスはシンプルな加算処理を含みます。
package com.example.math;
public class ElapsedTest {
public ElapsedTest() {
// デフォルトコンストラクタ
}
public static int computeSum(int a, int b) {
int result = 0;
if (a > 0) {
result = a + b;
} else {
result = (a + b) * 2;
}
return result;
}
}
次に、src/test/javaディレクトリ配下にテストクラスFixtureValidationTest.javaを追加します。ここでは、上記メソッドに対する単体テストを実装します。
package com.example.test;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.example.math.ElapsedTest;
public class FixtureValidationTest {
@Test
public void verifyPositiveInputSum() {
int actual = ElapsedTest.computeSum(7, 9);
assertEquals(16, actual);
}
}
Mavenビルド時にJaCoCoが動作するよう、pom.xmlを以下のように設定します。JaCoCoのエージェント起動とカバレッジ报表術を組み込います。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>coverage-sample</artifactId>
<version>1.0.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.11</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
</plugin>
</plugins>
</build>
</project>
Jenkins側では、JaCoCo Pluginをインストール後、新しいフリースタイルプロジェクトを作成し、以下の設定を行います:
- ストラクチャ:Mavenプロジェクトのビルドタスクを追加
- ビルドコマンド:mvn clean verify
- ビルド後のアクション:JaCoCoカバレッジレポート(target/jacoco/*.exec)を指定
ジョブを実行すると、JaCoCoがテスト実行中のカバレッジデータを収集し、HTML形式のカバレッジレポートが生成されます。Jenkinsダッシュボードには、カバレッジの推移やブランチカバレッジ、行単位のカバレッジ率が數値で表示されます。レポートの詳細画面からは、どの行がテストされていないかをファイルごとに確認できます。