単純なjunitテストをmavenで実行しようとしていますが、テストが検出されません。どこがいけないの?プロジェクトディレクトリ
Project -> src -> test-> Java -> MyTest.Java
結果 :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
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 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.buildproftest.ecs</groupId>
<artifactId>buildprofiletest</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<debug>false</debug>
<optimize>true</optimize>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
JUnitテストケース
import org.junit.jupiter.api.Test;
public class MyTest {
@Test
public void printTest() {
System.out.println("Running JUNIT test");
}
}
そのため、実行するテストケースはありません。
あなたの洞察をありがとう
注釈(import org.junit.jupiter.api.Test
)によると、MavenでJUnit 5テストを実行しようとしています。 documentation によると、この依存関係を追加する必要があります:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
Mavenのバージョンには、JUnit 5をサポートしないmaven-surefire-plugin
のバージョンが付属しています。Mavenを最新バージョンに更新できます。 maven-surefire-plugin
のバージョンを設定することもできます:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<!-- JUnit 5 requires Surefire version 2.22.0 or higher -->
<version>2.22.0</version>
</plugin>
この情報についてはjunit5-samples を参照してください。
Mavenリポジトリの Maven Surefire Plugin アーティファクトを参照してください。 2019年1月現在のバージョン3.0.0-M3
。
junit-jupiter
_ —より単純なアーキタイプLaurentGによる回答 は正しいようですが、少し時代遅れです。
JUnit 5.4以降では、これらの複数のMavenアーティファクトを置き換えることができます:
junit
junit-jupiter-api
_junit-jupiter-engine
_…アーティファクトが1つある場合:
この新しい成果物は他の成果物の集合体であり、POMファイルを単純化するための便利なラッパーです。
_ <dependencies>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<!-- Provides everything you need to write JUnit 5 Jupiter tests. -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.5.0-M1</version>
<scope>test</scope>
</dependency>
</dependencies>
_
これにより、JUnit 5Jupiterテストを記述して実行するために必要なすべてが得られます。
古いJUnit 3またはJUnit 4 レガシー の実行を継続したいテストがある場合は、2番目の依存関係 _junit-vintage-engine
_ を追加します。
_<dependencies>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter -->
<!-- Provides everything you need to write JUnit 5 Jupiter tests. -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.5.0-M1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.vintage/junit-vintage-engine -->
<!-- Enables any legacy JUnit 3 and JUnit 4 tests you may have. Not needed for JUnit 5 tests. -->
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.5.0-M1</version>
<scope>test</scope>
</dependency>
</dependencies>
_
他の回答 に示されているように、 Surefireプラグイン も必要です。 Surefireには最近いくつかの重要な修正/機能強化が施されているため、必ず最新バージョンを入手してください。現在のバージョンは3.0.0-M3です。