Как запустить модульный тест с 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
Просмотрите простой проект Java, как запускать классы модульного теста в Maven.
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 Test
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