Testar i Maven

En annan viktig punkt i Mavens arbete är testfasen. Det kommer att köras om du kör test , paketerar , verifierar eller någon annan fas som kommer efter dem.

Som standard kör Maven alla tester som finns i mappen src/test/java/ . För att skilja tester som ska köras från andra java-filer har en namnkonvention antagits. Tester är java-klasser vars namn börjar med "Test" och slutar med "Test" eller "TestCase" .

Allmänt mönster av testnamn:

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

Dessa tester måste skrivas baserat på Junit- eller TestNG-testramverket. Det här är väldigt coola ramverk, vi kommer definitivt att prata om dem lite senare.

Testresultat i form av rapporter i .txt- och .xml-format sparas i katalogen ${basedir}/target/surefire-reports.

Testuppsättning

Det finns vanligtvis många alternativ för att köra tester, så Maven-utvecklarna har gjort en speciell plugin, i parametrarna för vilka du kan ställa in all detaljerad information om testning. Insticksprogrammet heter Maven Surefire Plugin och finns tillgängligt .

<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 exemplet sa vi till pluginet att det måste köra en enda testklass, Sample.java.

Hur man snabbt eliminerar trasiga tester

För att köra projektet för testning måste du köra kommandot mvn test. Men oftare finns det ett behov av att utesluta vissa tester från testning. Till exempel kan de vara trasiga, ta för lång tid att köra eller av någon annan anledning.

Först kan du helt enkelt säga åt Maven att hoppa över testerna när du gör byggfasen. Exempel:

mvn clean package -Dmaven.test.skip=true

För det andra, i plugin-konfigurationen, kan du inaktivera utförandet av tester:


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

Och för det tredje kan tester uteslutas med taggen <exclude> . Exempel:


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