Comment exécuter le test unitaire avec Maven

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.

image

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