Testing i Maven
Et annet viktig poeng i arbeidet til Maven er testfasen. Det vil bli utført hvis du kjører test , pakker , verifiserer eller en annen fase som kommer etter dem.
Som standard vil Maven kjøre alle tester som er i src/test/java/ -mappen . For å skille tester som skal kjøres fra andre java-filer, har en navnekonvensjon blitt tatt i bruk. Tester er java-klasser hvis navn starter med "Test" og slutter med "Test" eller "TestCase" .
Generelt mønster av testnavn:
- **/Test*.java
- **/*Test.java
- **/*TestCase.java
Disse testene må skrives basert på Junit- eller TestNG-testrammeverket. Dette er veldig kule rammer, vi vil definitivt snakke om dem litt senere.
Testresultater i form av rapporter i .txt- og .xml-formater lagres i katalogen ${basedir}/target/surefire-reports.
Testoppsett
Det er vanligvis mange alternativer for å kjøre tester, så Maven-utviklerne har laget en spesiell plugin, i parametrene som du kan angi all detaljert informasjon om testing for. Programtillegget heter Maven Surefire Plugin og er tilgjengelig 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 plugin-en at den må kjøre en enkelt testklasse, Sample.java.
Hvordan raskt eliminere ødelagte tester
For å kjøre prosjektet for testing, må du kjøre mvn-testkommandoen. Men oftere er det behov for å ekskludere noen tester fra testing. De kan for eksempel være ødelagte, ta for lang tid å kjøre, eller av en annen grunn.
Først kan du ganske enkelt be Maven om å hoppe over testene når du utfører byggefasen. Eksempel:
mvn clean package -Dmaven.test.skip=true
For det andre, i plugin-konfigurasjonen, kan du deaktivere utførelse av tester:
<configuration>
<skipTests>true</skipTests>
</configuration>
Og for det tredje kan tester ekskluderes ved å bruke <exclude> -taggen . 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>