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 .

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