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 .

<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>