Testen in Maven

Een ander belangrijk punt in het werk van Maven is de testfase. Het wordt uitgevoerd als u test , pakket , verifiëren of een andere fase uitvoert die daarna komt.

Maven voert standaard alle tests uit die zich in de map src/test/java/ bevinden . Om uit te voeren tests te onderscheiden van andere Java-bestanden, is een naamgevingsconventie aangenomen. Tests zijn Java-klassen waarvan de naam begint met "Test" en eindigt met "Test" of "TestCase" .

Algemeen patroon van testnamen:

  • **/Test*.java
  • **/*Test.java
  • **/*TestCase.java

Deze testen moeten geschreven worden op basis van het Junit of TestNG test framework. Dit zijn erg coole frameworks, we zullen er later zeker over praten.

Testresultaten in de vorm van rapporten in .txt- en .xml-indeling worden opgeslagen in de map ${basedir}/target/surefire-reports.

Test opstelling

Er zijn meestal veel opties voor het uitvoeren van tests, daarom hebben de Maven-ontwikkelaars een speciale plug-in gemaakt, in de parameters waarvoor u alle gedetailleerde informatie over testen kunt instellen. De plug-in heet Maven Surefire Plugin en is beschikbaar op .

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

In het voorbeeld hebben we de plug-in verteld dat deze een enkele testklasse moet uitvoeren, Sample.java.

Hoe gebroken tests snel kunnen worden geëlimineerd

Om het project voor testen uit te voeren, moet u de mvn-testopdracht uitvoeren. Maar vaker is er behoefte om sommige tests uit te sluiten van testen. Ze kunnen bijvoorbeeld kapot zijn, te lang duren om te werken of om een ​​andere reden.

Ten eerste kun je Maven eenvoudig vertellen om de tests over te slaan tijdens de bouwfase. Voorbeeld:

mvn clean package -Dmaven.test.skip=true

Ten tweede kunt u in de configuratie van de plug-in de uitvoering van tests uitschakelen:


<configuration>
    <skipTests>true</skipTests>
</configuration>

En ten derde kunnen tests worden uitgesloten met behulp van de tag <exclude> . Voorbeeld:


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