実現したいこと
eclipse上でmavenプロジェクトを作成し、Junit5を用いて単体テストとjacocoレポートを生成できるようにしたい。
発生している問題・分からないこと
Junt5をビルドパスに追加し、EclipseマーケットプレイスでJacocoプラグインをインストールしようとしたのですが接続できなかったため、pom.xmlに依存情報などを記述しました。その後テストクラスをJunit5で実行するところまではできたのですが、tagretフォルダにsiteフォルダやJacocoレポートが生成されません。
また、エラーはなく、eclipseの起動時に、
eclipse.buildId=4.30.0.20231201-1200
java.version=17.0.10
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ja_JP
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product
といった内容の警告がありました。
該当のソースコード
pom.xml
1<?xml version="1.0" encoding="UTF-8"?> 2 3<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>JavaPractice</groupId> 8 <artifactId>JacocoSample</artifactId> 9 <version>0.0.1-SNAPSHOT</version> 10 11 <name>JacocoSample</name> 12 <!-- FIXME change it to the project's website --> 13 <url>http://www.example.com</url> 14 15 <properties> 16 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 17 <maven.compiler.source>1.7</maven.compiler.source> 18 <maven.compiler.target>1.7</maven.compiler.target> 19 </properties> 20 21 <dependencies> 22 <dependency> 23 <groupId>junit</groupId> 24 <artifactId>junit</artifactId> 25 <version>4.11</version> 26 <scope>test</scope> 27 </dependency> 28 29 </dependencies> 30 31 <build> 32 <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> 33 <plugins> 34 <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle --> 35 <plugin> 36 <artifactId>maven-clean-plugin</artifactId> 37 <version>3.1.0</version> 38 </plugin> 39 <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging --> 40 <plugin> 41 <artifactId>maven-resources-plugin</artifactId> 42 <version>3.0.2</version> 43 </plugin> 44 <plugin> 45 <artifactId>maven-compiler-plugin</artifactId> 46 <version>3.8.0</version> 47 </plugin> 48 <plugin> 49 <artifactId>maven-surefire-plugin</artifactId> 50 <version>2.22.1</version> 51 </plugin> 52 <plugin> 53 <artifactId>maven-jar-plugin</artifactId> 54 <version>3.0.2</version> 55 </plugin> 56 <plugin> 57 <artifactId>maven-install-plugin</artifactId> 58 <version>2.5.2</version> 59 </plugin> 60 <plugin> 61 <artifactId>maven-deploy-plugin</artifactId> 62 <version>2.8.2</version> 63 </plugin> 64 <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle --> 65 <plugin> 66 <artifactId>maven-site-plugin</artifactId> 67 <version>3.7.1</version> 68 </plugin> 69 <plugin> 70 <artifactId>maven-project-info-reports-plugin</artifactId> 71 <version>3.0.0</version> 72 </plugin> 73 74 <plugin> 75 <groupId>org.jacoco</groupId> 76 <artifactId>jacoco-maven-plugin</artifactId> 77 <version>0.8.11</version> 78 </plugin> 79 80 </plugins> 81 </pluginManagement> 82 83 <plugins> 84 <plugin> 85 <groupId>org.jacoco</groupId> 86 <artifactId>jacoco-maven-plugin</artifactId> 87 <executions> 88 <execution> 89 <id>prepare-agent</id> 90 <goals> 91 <goal>prepare-agent</goal> 92 </goals> 93 </execution> 94 <execution> 95 <id>report</id> 96 <goals> 97 <goal>report</goal> 98 </goals> 99 </execution> 100 </executions> 101 </plugin> 102 </plugins> 103 104 </build> 105</project>
Account.java
1package JavaPractice.JacocoSample; 2 3/** 4 * Hello world! 5 * 6 */ 7public class Account 8{ 9 String owner; 10 int zandaka; 11 public Account(String owner, int zandaka) { 12 this.owner = owner; 13 this.zandaka = zandaka; 14 } 15 16 public void transfer(Account dest, int amount) { 17 dest.zandaka += amount; 18 zandaka -= amount; 19 } 20} 21
AccountTest.java
1package JavaPractice.JacocoSample; 2 3import static org.junit.jupiter.api.Assertions.*; 4 5import org.junit.jupiter.api.Test; 6 7class AccountTest { 8 9 @Test 10 public void instantiate() { 11 Account a = new Account("ミナト", 30000); 12 assertEquals("ミナト", a.owner); 13 assertEquals(30000, a.zandaka); 14 } 15} 16
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
学習目的でIDEやフレームワークを始めた初心者です。ネットやAIで、プロジェクトの作成方法やビルドファイルの記述方法、mavenについて調べました。特にpom.xmlはeclipseで自動で記述されたものに、AIが生成したJacocoの依存情報(<dependency>や<plugin>)などをコピペしました。
補足
eclipse Version: 2023-12 (4.30.0)
Java 21
メニューバーのウィンドウの設定でJava下のインストール済みのJREで確認しました。初心者なのでこれが正しいかどうかはわかりません。すみません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。