Java >> Java tutorial >  >> Tag >> JUnit

Kør JUnit-testsager fra kommandolinjen

1. Oversigt

I denne øvelse forstår vi hvordan man kører JUnit 5-tests direkte fra kommandolinjen .

2. Testscenarier

Tidligere har vi dækket, hvordan man kører en JUnit-test programmatisk. Til vores eksempler vil vi bruge de samme JUnit-tests:

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. Kørsel af en JUnit 5-test 

Vi kan køre en JUnit 5-testcase ved hjælp af JUnits konsolstarter . Den eksekverbare til denne jar kan downloades fra Maven Central under junit-platform-console-standalone bibliotek.

Vi har også brug for en mappe, der vil indeholde alle vores kompilerede klasser:

$ mkdir target

Lad os se, hvordan vi kan køre forskellige testcases ved hjælp af konsolstarteren.

3.1. Kør en enkelt testklasse

Før vi kører testklassen, lad os kompilere den:

$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/baeldung/commandline/FirstUnitTest.java

Nu kører vi den kompilerede testklasse ved hjælp af Junit-konsolstarteren:

$ java -jar junit-platform-console-standalone-1.7.2.jar --class-path target --select-class com.baeldung.commandline.FirstUnitTest

Dette vil give os testkørselsresultater:

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. Kør flere testklasser

Igen, lad os kompilere de testklasser, vi ønsker at køre:

$ 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 

Vi kører nu de kompilerede testklasser ved hjælp af konsolstarteren:

$ 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

Vores resultater viser nu, at alle fem testmetoder var vellykkede:

Test run finished after 68 ms
...
[         5 tests found           ]
...
[         5 tests successful      ]
[         0 tests failed          ]

3.3. Kør alle testklasser i en pakke

For at køre alle testklasserne i en pakke, lad os kompilere alle testklasserne i vores pakke:

$ javac -d target -cp target:junit-platform-console-standalone-1.7.2.jar src/test/java/com/baeldung/commandline/*.java

Igen kører vi de kompilerede testklasser af vores pakke:

$ 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. Kør alle testklasserne

Lad os køre alle testcases:

$ 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. Kører JUnit ved hjælp af Maven

Hvis vi bruger Maven som vores byggeværktøj , kan vi udføre testcases direkte fra kommandolinjen.

4.1. Kørsel af en enkelt testcase

For at køre en enkelt testcase på konsollen, lad os udføre følgende kommando ved at angive testklassens navn:

$ mvn test -Dtest=SecondUnitTest 

Dette vil give os testkørselsresultater:

[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. Kør flere testsager

For at køre flere testcases på konsollen, lad os udføre kommandoen og specificere navnene på alle de testklasser, vi ønsker at udføre:

$ 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. Kør alle testsager i en pakke

For at køre alle testcases i en pakke skal vi på konsollen angive pakkenavnet som en del af kommandoen:

$ 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. Kør alle testsager

Til sidst, for at køre alle testcases ved hjælp af Maven på konsollen, udfører vi simpelthen mvn clean test :

$ 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. Konklusion

I denne artikel har vi lært, hvordan man kører JUnit-tests direkte fra kommandolinjen, der dækker JUnit 5 både med og uden Maven.

Implementering af eksemplerne vist her er tilgængelig på GitHub.


Java tag