Comment exécuter un test unitaire avec Maven
Vous pouvez utilisermvn test
pour exécuter un test unitaire dans Maven. Quelques exemples:
# 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
Lemaven-surefire-plugin
par défaut est obsolète, assurez-vous de mettre à jour la dernière pour prendre en charge les nouvelles fonctionnalités, comme la correspondance de modèles ou exécuter une seule méthode de test, etc.
pom.xml
org.apache.maven.plugins maven-surefire-plugin 2.22.0
1. Projet Maven Java
Passez en revue un projet Java simple sur la manière d'exécuter les classes de test unitaire dans 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. Test de Maven
2.1 Run all test classes.
Terminal
$ 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
Terminal
$ 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
Terminal
$ 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]
Télécharger le code source
$ git clone https://github.com/example/maven-examples.git
$ cd maven-unit-test
$ mvn test
$ mvn -Dtest=TestMessageBuilder test
$ mvn -Dtest=TestMessageBuilder#testHelloWorld test