Test i Maven
Et andet vigtigt punkt i Mavens arbejde er testfasen. Det vil blive udført, hvis du kører test , pakker , verificere eller enhver anden fase, der kommer efter dem.
Som standard vil Maven køre alle test, der er i mappen src/test/java/ . For at skelne test, der skal køres, fra andre java-filer, er der vedtaget en navnekonvention. Tests er java-klasser, hvis navne starter med "Test" og slutter med "Test" eller "TestCase" .
Generelt mønster af testnavne:
- **/Test*.java
- **/*Test.java
- **/*TestCase.java
Disse tests skal skrives baseret på Junit- eller TestNG-testrammerne. Det er meget fede rammer, dem vil vi helt sikkert tale om lidt senere.
Testresultater i form af rapporter i .txt- og .xml-formater gemmes i mappen ${basedir}/target/surefire-reports.
Test opsætning
Der er normalt mange muligheder for at køre test, så Maven-udviklerne har lavet et særligt plugin, i parametrene, som du kan indstille alle detaljerede oplysninger om test. Pluginnet hedder Maven Surefire Plugin og er tilgængelig på .
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<includes>
<include>Sample.java</include>
</includes>
</configuration>
</plugin>
</plugins>
I eksemplet fortalte vi pluginnet, at det skal køre en enkelt testklasse, Sample.java.
Hvordan man hurtigt eliminerer ødelagte tests
For at køre projektet til test, skal du køre mvn test-kommandoen. Men oftere er der behov for at udelukke nogle tests fra test. For eksempel kan de være gået i stykker, tage for lang tid at køre eller af andre årsager.
For det første kan du simpelthen bede Maven om at springe testene over, når du laver byggefasen. Eksempel:
mvn clean package -Dmaven.test.skip=true
For det andet kan du i plugin-konfigurationen deaktivere udførelse af test:
<configuration>
<skipTests>true</skipTests>
</configuration>
Og for det tredje kan tests udelukkes ved hjælp af <exclude> -tagget . Eksempel:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<excludes>
<exclude>**/TestFirst.java</exclude>
<exclude>**/TestSecond.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
GO TO FULL VERSION