JUnit 5 Tutorial:Kørsel af enhedstests med Maven
Dette blogindlæg beskriver, hvordan vi kan oprette et Maven-projekt, der kan kompilere og køre enhedstests, der bruger JUnit 5. Efter vi har afsluttet dette blogindlæg, har vi:
- Kan få de nødvendige afhængigheder med Maven.
- Forstå, hvordan vi kan konfigurere Maven Surefire Plugin.
- Vid, hvordan vi kan køre vores enhedstest med Maven.
Lad os starte med at få de nødvendige afhængigheder.
Få de nødvendige afhængigheder
Vi kan få de nødvendige afhængigheder ved at tilføje junit-jupiter
(version 5.8.2) afhængighed af test
omfang. Dette er en aggregatorartefakt, som forenkler afhængighedsstyringen, fordi den har følgende transitive afhængigheder:
junit-jupiter-api
afhængighed (compile
scope) giver den offentlige API til at skrive test og udvidelser.junit-jupiter-params
afhængighed (compile
scope) giver support til at skrive parameteriserede tests.junit-jupiter-engine
afhængighed (runtime
scope) indeholder implementeringen af JUnit Jupiter-testmotoren, der kører vores enhedstest. Hvis vi tilføjer denne afhængighed til vores klassesti, kan Maven Surefire og Failsafe plugins (version 2.22.0 eller nyere) køre test, der bruger JUnit 5.
Efter at vi har tilføjet den nødvendige afhængighed til vores POM-fil, er dens dependencies
sektionen ser ud som følger:
<dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>5.8.2</version> <scope>test</scope> </dependency> </dependencies>
Efter at vi har erklæret de nødvendige afhængigheder, skal vi konfigurere Maven Surefire Plugin. Lad os finde ud af, hvordan vi kan gøre det.
Konfiguration af Maven Surefire Plugin
Vi kan køre vores enhedstests ved at bruge Maven Surefire Plugin. Fordi vi ønsker at bruge dens oprindelige JUnit 5-understøttelse, er vi nødt til at bruge version 2.22.0 (eller nyere).
Efter at vi har sikret os, at vores enhedstest køres af Maven Surefire Plugin 2.22.2, er build
sektionen af vores POM-fil ser ud som følger:
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.2</version> </plugin> </plugins> </build>
Vi har nu lavet et Maven-projekt, der kan køre enhedstest, som bruger JUnit 5. Lad os gå videre og skrive en simpel enhedstest med JUnit 5.
Skriv en simpel enhedstest
Før vi kan skrive enhedstest, der bruger JUnit 5, skal vi vide disse to ting:
- src/test/java biblioteket indeholder kildekoden til vores enhedstests.
- src/test/resources biblioteket indeholder ressourcerne til vores enhedstests.
Lad os oprette en ny testklasse og tilføje en tom testmetode til den oprettede klasse. Efter at vi har skrevet vores testklasse, ser dens kildekode ud som følger:
import org.junit.jupiter.api.Test; class JUnit5ExampleTest { @Test void justAnExample() { } }
Dernæst vil vi finde ud af, hvordan vi kan køre vores enhedstests.
Kørsel af enhedstests med Maven
Vi kan køre vores enhedstest med Maven ved at bruge kommandoen:mvn clean test . Når vi kører denne kommando ved kommandoprompt, bør vi se, at Maven Surefire Plugin kører vores enhedstests.
[INFO] [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ running-unit-tests --- [INFO] ------------------------------------------------------- T E S T S ------------------------------------------------------- Running net.petrikainulainen.junit5.JUnit5ExampleTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.033 sec - in net.petrikainulainen.junit5.JUnit5ExampleTest Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
Vi kan nu oprette et Maven-projekt, der kompilerer og kører enhedstests, som bruger JUnit 5. Vi ved også, hvordan vi kan køre vores enhedstests med Maven. Lad os opsummere, hvad vi lærte af dette blogindlæg.
Oversigt
Dette blogindlæg har lært os seks ting:
- De
junit-jupiter-api
afhængighed leverer den offentlige API, der giver os mulighed for at skrive test og udvidelser, der bruger JUnit 5. junit-jupiter-engine
afhængighed sikrer, at Maven Surefire Plugin kan køre test, der bruger JUnit 5.junit-jupiter
afhængighed er en aggregatorartefakt, som forenkler afhængighedsstyringen, fordi den sikrer, at de nødvendige afhængigheder findes fra klassestien.- Maven Surefire Plugin 2.22.0 (eller nyere) giver indbygget support til JUnit 5.
- Hvis vi vil bruge den indbyggede JUnit 5-understøttelse af Maven Surefire Plugin, skal vi sikre, at der findes mindst én testmotorimplementering fra klassestien.
- Vi kan køre vores enhedstests ved at bruge kommandoen:mvn clean test .