Mavenで単体テストを実行する方法
mvn testを使用して、Mavenで単体テストを実行できます。 いくつかの例:
# Run all the unit test classes. $ mvn test # Run a single test class. $ mvn -Dtest=TestApp1 test # Run multiple test classes. $ mvn -Dtest=TestApp1,TestApp2 test # Run a single test method from a test class. $ mvn -Dtest=TestApp1#methodname test # Run all test methods that match pattern 'testHello*' from a test class. $ mvn -Dtest=TestApp1#testHello* test # Run all test methods match pattern 'testHello*' and 'testMagic*' from a test class. $ mvn -Dtest=TestApp1#testHello*+testMagic* test
デフォルトのmaven-surefire-pluginは古くなっています。パターンマッチングや単一のテストメソッドの実行などの新機能をサポートするために、必ず最新のものに更新してください。
pom.xml
org.apache.maven.plugins maven-surefire-plugin 2.22.0
1. Maven Javaプロジェクト
Mavenで単体テストクラスを実行する方法について、簡単なJavaプロジェクトを確認してください。
1.1 Directory Structure.

1.2 Maven + JUnit 5 examples.
pom.xml
4.0.0 com.example.examples maven-unit-test jar 1.0-SNAPSHOT UTF-8 1.8 1.8 org.junit.jupiter junit-jupiter-engine 5.3.1 test maven-unit-test org.apache.maven.plugins maven-surefire-plugin 2.22.0
1.3 Two Java classes, later we will create unit test classes for it.
MagicBuilder.java
package com.example.examples;
public class MagicBuilder {
public static int getLucky() {
return 7;
}
}
MessageBuilder.java
package com.example.examples;
public class MessageBuilder {
public static String getHelloWorld(){
return "hello world";
}
public static int getNumber10(){
return 10;
}
}
1.4 Test class for MagicBuilder
TestMagicBuilder.java
package com.example.examples;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestMagicBuilder {
@Test
public void testLucky() {
assertEquals(7, MagicBuilder.getLucky());
}
}
1.5 Test class for MessageBuilder
pom.xml
package com.example.examples;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class TestMessageBuilder {
@Test
public void testHelloWorld() {
assertEquals("hello world", MessageBuilder.getHelloWorld());
}
@Test
public void testNumber10() {
assertEquals(10, MessageBuilder.getNumber10());
}
}
2. Mavenテスト
2.1 Run all test classes.
ターミナル
$ mvn test [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.example.examples.TestMagicBuilder [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.example.examples.TestMagicBuilder [INFO] Running com.example.examples.TestMessageBuilder [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in com.example.examples.TestMessageBuilder [INFO]
2.2 Run a single test class TestMessageBuilder
ターミナル
$ mvn -Dtest=TestMessageBuilder test [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.example.examples.TestMessageBuilder [INFO] Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.example.examples.TestMessageBuilder [INFO]
2.3 Run a single test method testHelloWorld() from the test class TestMessageBuilder
ターミナル
$ mvn -Dtest=TestMessageBuilder#testHelloWorld test [INFO] ------------------------------------------------------- [INFO] T E S T S [INFO] ------------------------------------------------------- [INFO] Running com.example.examples.TestMessageBuilder [INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s - in com.example.examples.TestMessageBuilder [INFO]
ソースコードをダウンロード
$ git clone https://github.com/example/maven-examples.git
$ cd maven-unit-test
$ mvn test
$ mvn -Dtest=TestMessageBuilder test
$ mvn -Dtest=TestMessageBuilder#testHelloWorld test