1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Eclipse2025を使ってSpring Boot MavenプロジェクトでJunitの実行とカバレッジレポートの出力方法

Last updated at Posted at 2025-12-26

Eclipse2025でSpring Boot MavenプロジェクトでのJunitの実行方法とカバレッジレポートの出力方法まで記載します。

Junitの実行方法

Eclipse 2025では標準でJunitとJaCoCoは組み込まれています。なのでMarketプレースからプラグインをインストールする必要はないです。
image.png

Spring Bootのpom.xmlにJunitを入れる

Spring Bootで使用するときは、Junitを使えるようにしたいので、spring-boot-starter-testを入れておきましょう。

pom.xml
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>4.0.1</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>sample</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>sample</name>
	<description>Demo project for Spring Boot</description>
	<url/>
	<licenses>
		<license/>
	</licenses>
	<developers>
		<developer/>
	</developers>
	<scm>
		<connection/>
		<developerConnection/>
		<tag/>
		<url/>
	</scm>
	<properties>
		<java.version>21</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-webmvc</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-webmvc-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
		    <groupId>org.springframework.boot</groupId>
		    <artifactId>spring-boot-starter-test</artifactId>
		    <scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<annotationProcessorPaths>
						<path>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</path>
					</annotationProcessorPaths>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<excludes>
						<exclude>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
						</exclude>
					</excludes>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>

テストフォルダを作成する

プロジェクトの上で右クリックして、テスト用のフォルダを作成しましょう。
image.png

できたら下記のようにディレクトリが生成されます。
image.png

Junitテストケースを作成する

さて、今回は下記のSampleController.javaのテストケースを作ってみます。

SampleController.java
package com.example.demo.controllers;

import java.util.ArrayList;
import java.util.List;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class SampleController {
	@GetMapping("/api/fruits")
	public List<String> list(){
		List<String> sampleList = new ArrayList<>();
		sampleList.add("Apple");
		sampleList.add("Orange");
		sampleList.add("Banana");
		return sampleList;
	}
}

SampleController.javaは、com.example.demo.controllerパッケージに格納されています。

com.example.demo.controllerパッケージの上で右クリック⇒[新規]⇒[その他]を選択します。
image.png

[Junit]フォルダ⇒[Junitテストケース]を選択します。
image.png

テストケース名を入力して、[完了]ボタンを選択します。
image.png

SampleControllerTest.javaを下記のように更新します。

SampleControllerTest.java
package com.example.demo.controllers;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.test.web.servlet.MockMvc;

@SpringBootTest
@AutoConfigureMockMvc
class SampleControllerTest {
	
	@Autowired
	MockMvc mockMvc;
	
	@Test
	void test()throws Exception {
		mockMvc.perform(get("/api/fruits"))
        .andExpect(status().isOk())
        .andExpect(jsonPath("$[0]").value("Apple"))
        .andExpect(jsonPath("$[1]").value("Orange"))
        .andExpect(jsonPath("$[2]").value("Banana"));
	}

}

カバレッジの詳細を見たいので、[カバレッジ]⇒[Junitテスト]を選択します。

image.png

すると、下記のように結果が表示されます。
image.png

カバレッジレポートの出力方法

つづいて、カバレッジの結果をHTMLとして出力しましょう。
下のカバレッジ結果が表示されている画面で右クリックして、[セッションエクスポート]を選択します。
image.png

出力先を選んで、完了ボタンを押します。
image.png

これでHTMLのカバレッジレポートが出力できました。
image.png

image.png

サイト

Java Eclipseでカバレッジを取得する

JaCoCo Java Code Coverage Library

Junitでカバレッジを取得する

【2024年保存版】JUnitの使い方完全マスター!初心者でもわかる導入から実践まで

Apache Strutsの環境設定編

【2024年保存版】Apache Strutsの完全ガイド:導入から実践まで13のステップ

Playwright編

Playwright公式サイト

Playwright を使いこなすためのベストプラクティス

C# 単体テスト MSTest編

C# の単体テストのコードカバレッジの結果をWeb形式で出力する

C# MSTestの基本的な使用方法についてまとめる

【C#】自動テストの実装(MsTest)

【C#】単体テストを作成する方法

【第5回】ソリューションエクスプローラーの使い方

PHP 単体テスト編

PHPの自動テストフレームワークってどんなんがあるん?

Sonar Qube編

AI生成コードの品質向上!SonarQube IDEの活用術

SonarQubeさんに怒られたら

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?