コマンドラインからJUnitテストケースを実行する
1. 概要
このチュートリアルでは、コマンドラインから直接JUnit5テストを実行する方法を理解します。
2. テストシナリオ
以前、JUnitテストをプログラムで実行する方法について説明しました。 この例では、同じJUnitテストを使用します。
public class FirstUnitTest {
@Test
public void whenThis_thenThat() {
assertTrue(true);
}
@Test
public void whenSomething_thenSomething() {
assertTrue(true);
}
@Test
public void whenSomethingElse_thenSomethingElse() {
assertTrue(true);
}
}
public class SecondUnitTest {
@Test
public void whenSomething_thenSomething() {
assertTrue(true);
}
@Test
public void whensomethingElse_thenSomethingElse() {
assertTrue(true);
}
}
3. JUnit5テストの実行
JUnitのコンソールランチャーを使用してJUnit5テストケースを実行できます。 このjarの実行可能ファイルは、MavenCentralのjunit-platform-console-standaloneディレクトリからダウンロードできます。
また、コンパイルされたすべてのクラスを含むディレクトリが必要になります。
$ mkdir target
コンソールランチャーを使用してさまざまなテストケースを実行する方法を見てみましょう。
3.1. 単一のテストクラスを実行する
テストクラスを実行する前に、それをコンパイルしましょう。
$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/baeldung/commandline/FirstUnitTest.java
次に、Junitコンソールランチャーを使用してコンパイル済みテストクラスを実行します。
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-class com.baeldung.commandline.FirstUnitTest
これにより、テスト実行の結果が得られます。
Test run finished after 60 ms
[ 3 containers found ]
[ 0 containers skipped ]
[ 3 containers started ]
[ 0 containers aborted ]
[ 3 containers successful ]
[ 0 containers failed ]
[ 3 tests found ]
[ 0 tests skipped ]
[ 3 tests started ]
[ 0 tests aborted ]
[ 3 tests successful ]
[ 0 tests failed ]
3.2. 複数のテストクラスを実行する
繰り返しますが、実行したいテストクラスをコンパイルしましょう。
$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/baeldung/commandline/FirstUnitTest.java src/test/java/com/baeldung/commandline/SecondUnitTest.java
次に、コンソールランチャーを使用してコンパイル済みのテストクラスを実行します。
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-class com.baeldung.commandline.FirstUnitTest --select-class com.baeldung.commandline.SecondUnitTest
私たちの結果は、5つのテスト方法すべてが成功したことを示しています。
Test run finished after 68 ms
...
[ 5 tests found ]
...
[ 5 tests successful ]
[ 0 tests failed ]
3.3。パッケージ内のすべてのテストクラスを実行する
パッケージ内のすべてのテストクラスを実行するには、パッケージに含まれるすべてのテストクラスをコンパイルしましょう。
$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/baeldung/commandline/*.java
ここでも、パッケージのコンパイル済みテストクラスを実行します。
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-package com.baeldung.commandline
...
Test run finished after 68 ms
...
[ 5 tests found ]
...
[ 5 tests successful ]
[ 0 tests failed ]
3.4. すべてのテストクラスを実行する
すべてのテストケースを実行してみましょう。
$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --scan-class-path
...
Test run finished after 68 ms
...
[ 5 tests found ]
...
[ 5 tests successful ]
[ 0 tests failed ]
4. Mavenを使用したJUnitの実行
ビルドツールとしてMavenを使用している場合は、コマンドラインから直接テストケースを実行できます。
4.1. 単一のテストケースの実行
コンソールで単一のテストケースを実行するには、テストクラス名を指定して次のコマンドを実行します。
$ mvn test -Dtest=SecondUnitTest
これにより、テスト実行の結果が得られます。
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.SecondUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s [INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
4.2. 複数のテストケースを実行する
コンソールで複数のテストケースを実行するには、実行するすべてのテストクラスの名前を指定して、コマンドを実行します。
$ mvn test -Dtest=FirstUnitTest,SecondUnitTest
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.SecondUnitTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.FirstUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s
[INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
4.3. パッケージ内のすべてのテストケースを実行する
パッケージ内のすべてのテストケースを実行するには、コンソールで、コマンドの一部としてパッケージ名を指定する必要があります。
$ mvn test -Dtest="com.baeldung.commandline.**"
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.SecondUnitTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.FirstUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s
[INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
4.4. すべてのテストケースを実行する
最後に、コンソールでMavenを使用してすべてのテストケースを実行するには、 mvn cleantestを実行するだけです。
$ mvn clean test
...
[INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.SecondUnitTest
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.069 s - in com.baeldung.commandline.FirstUnitTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 5, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.211 s
[INFO] Finished at: 2021-08-02T23:13:41+05:30
[INFO] ------------------------------------------------------------------------
5. 結論
この記事では、コマンドラインから直接JUnitテストを実行する方法を学び、Mavenを使用する場合と使用しない場合の両方でJUnit5をカバーしました。
ここに示す例の実装は、GitHubでから入手できます。