質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

174閲覧

Ubuntu22.04で、mvn testコマンドを実行すると、エラーが発生しました。

Suihe-Ribe-108

総合スコア8

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2025/01/05 04:23

Ubuntu22.04で、mvn testコマンドを実行すると、エラーが発生しました。

① Ubuntu22.04に次のツールをインストールしました。
Maven バージョン:3.9.9
Java バージョン:19.0.2
プラットフォームのエンコーディング:UTF-8

②この状態で、次のコマンドを実行しました。
mkdir $HOME/MavenTest
cd $HOME/MavenTest
mvn archetype:generate
-DarchetypeArtifactId=maven-archetype-quickstart
-DgroupId=com.sample2
-DartifactId=sample2
-Dversion=1.0-SNAPSHOT

次のファイルが作成されました。
$HOME/MavenTest/sample2
pom.xml

$HOME/MavenTest/sample2/src/main/java/com/sample2
App.java

package com.sample2; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( "Hello World!" ); } }

$HOME/MavenTest/sample2/src/test/java/com/sample2
AppTest.java

package com.sample2; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Unit test for simple App. */ public class AppTest extends TestCase { /** * Create the test case * * @param testName name of the test case */ public AppTest( String testName ) { super( testName ); } /** * @return the suite of tests being tested */ public static Test suite() { return new TestSuite( AppTest.class ); } /** * Rigourous Test :-) */ public void testApp() { assertTrue( true ); } }

③次の処理で、App.javaのコンパイルを行いました。

a)pom.xmlを次のように修正しました。

<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sample2</groupId> <artifactId>sample2</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>sample2</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.release>19</maven.compiler.release> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>5.11.4</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>

b)次のコマンドを実行しました。
cd $HOME/MavenTest/sample2
mvn compile
java -cp target/classes/ com.sample2.App

結果は次の通りです。
イメージ説明
④次の処理で、App.javaのコンパイルを行おうとしました。

a)次のコマンドを実行しました。
cd $HOME/MavenTest/sample2
mvn test

結果は次の通りです。

[INFO] Scanning for projects... [INFO] [INFO] ------------------------< com.sample2:sample2 >------------------------- [INFO] Building sample2 1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ sample2 --- [INFO] skip non existing resourceDirectory /home/hideo/MavenTest/sample2/src/main/resources [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ sample2 --- [INFO] Nothing to compile - all classes are up to date. [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ sample2 --- [INFO] skip non existing resourceDirectory /home/hideo/MavenTest/sample2/src/test/resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ sample2 --- [INFO] Recompiling the module because of changed source code. [INFO] Compiling 1 source file with javac [debug release 19] to target/test-classes [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[3,23] パッケージjunit.frameworkは存在しません [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[4,23] パッケージjunit.frameworkは存在しません [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[5,23] パッケージjunit.frameworkは存在しません [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[11,13] シンボルを見つけられません シンボル: クラス TestCase [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[26,19] シンボルを見つけられません シンボル: クラス Test 場所: クラス com.sample2.AppTest [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[28,20] シンボルを見つけられません シンボル: クラス TestSuite 場所: クラス com.sample2.AppTest [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[36,9] シンボルを見つけられません シンボル: メソッド assertTrue(boolean) 場所: クラス com.sample2.AppTest [INFO] 7 errors [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4.543 s [INFO] Finished at: 2025-01-05T13:00:07+09:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:testCompile (default-testCompile) on project sample2: Compilation failure: Compilation failure: [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[3,23] パッケージjunit.frameworkは存在しません [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[4,23] パッケージjunit.frameworkは存在しません [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[5,23] パッケージjunit.frameworkは存在しません [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[11,13] シンボルを見つけられません [ERROR] シンボル: クラス TestCase [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[26,19] シンボルを見つけられません [ERROR] シンボル: クラス Test [ERROR] 場所: クラス com.sample2.AppTest [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[28,20] シンボルを見つけられません [ERROR] シンボル: クラス TestSuite [ERROR] 場所: クラス com.sample2.AppTest [ERROR] /home/hideo/MavenTest/sample2/src/test/java/com/sample2/AppTest.java:[36,9] シンボルを見つけられません [ERROR] シンボル: メソッド assertTrue(boolean) [ERROR] 場所: クラス com.sample2.AppTest [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

どなたか、このバグの原因及び解決策がわかっておられる方がおられたら、ご指導お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2025/01/06 23:19

> a)pom.xmlを次のように修正しました ... > <groupId>org.junit</groupId> > <artifactId>junit-bom</artifactId> > <version>5.11.4</version> JUnitのに関する設定をJUnit5用に変更したのは意図的なものでしょうか?
guest

回答1

0

自己解決

返事をするのが遅れましてすみません。自己解決したので、

私は、②の方法の前に、Maven プロジェクトを対話式で作成する方法をしました。
コマンドは、次の通りです。
a)mvn archetype:generate
b)maven-archetype-quickstart
c)3 (maven-archetype-quickstart)」
d)9 (1.5)
e)com.sample1(groupId)
f)sample1(artifactId)
g)デフォルト値(version)
h)デフォルト値(package)

このコマンドを実行すると、Junit5のバージョンになったので、
②の方法でも、Junit5を使用するのが正しいと思って、pom.xmlもJunit5のバージョンで実行しました。

AppTest.javaがJunit4形式のファイルなので、pom.xmlもJunit4で実行すればいいのですね。

Junit4形式のpom.xml

<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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sample2</groupId> <artifactId>sample2</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>sample2</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.release>19</maven.compiler.release> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> </dependencies> </project>

このファイルでコンパイルを行うと、次のようになりました。

[INFO] Scanning for projects... [INFO] [INFO] ------------------------< com.sample2:sample2 >------------------------- [INFO] Building sample2 1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- resources:3.3.1:resources (default-resources) @ sample2 --- [INFO] skip non existing resourceDirectory /home/hideo/MavenTest/sample2/src/main/resources [INFO] [INFO] --- compiler:3.13.0:compile (default-compile) @ sample2 --- [INFO] Recompiling the module because of changed source code. [INFO] Compiling 1 source file with javac [debug release 19] to target/classes [INFO] [INFO] --- resources:3.3.1:testResources (default-testResources) @ sample2 --- [INFO] skip non existing resourceDirectory /home/hideo/MavenTest/sample2/src/test/resources [INFO] [INFO] --- compiler:3.13.0:testCompile (default-testCompile) @ sample2 --- [INFO] Recompiling the module because of changed dependency. [INFO] Compiling 1 source file with javac [debug release 19] to target/test-classes [INFO] [INFO] --- surefire:3.2.5:test (default-test) @ sample2 --- [INFO] Using auto detected provider org.apache.maven.surefire.junit4.JUnit4Provider [INFO] [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.sample2.AppTest [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.204 s -- in com.sample2.AppTest [INFO] [INFO] Results: [INFO] [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 10.567 s [INFO] Finished at: 2025-01-09T20:04:27+09:00 [INFO] ------------------------------------------------------------------------

これで成功しました。
dodox86様、いいアドバイスをありがとうございました。

投稿2025/01/09 11:09

Suihe-Ribe-108

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2025/01/09 13:51

ご自身で自己解決できて何よりだったと思います。 > 私は、②の方法の前に、Maven プロジェクトを対話式で作成する方法をしました。 ... > このコマンドを実行すると、Junit5のバージョンになったので、 > ②の方法でも、Junit5を使用するのが正しいと思って、pom.xmlもJunit5のバージョンで実行しました。 そうだったのですね。これは知りませんでした。どちらかのサイト記事を参考に、意図的に手動でJUnit5用に編集されたのかと思いました。(<だから確認のコメントをしました) ちなみにJUnit5用の<dependencyManagement>を設定しても、旧来のJUnit3,4とJUnit5のソースファイルを共存させることができます。 JUnit Vintage Engineを使います https://mvnrepository.com/artifact/org.junit.vintage/junit-vintage-engine 「maven junit junit-vintage-engine」などでも検索してみてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.34%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問