Test a Maven

Un altro punto importante nel lavoro di Maven è la fase di test. Verrà eseguito se si esegue test , package , verifiche o qualsiasi altra fase successiva.

Per impostazione predefinita, Maven eseguirà tutti i test che si trovano nella cartella src/test/java/ . Per distinguere i test da eseguire da altri file java, è stata adottata una convenzione di denominazione. I test sono classi java i cui nomi iniziano con "Test" e terminano con "Test" o "TestCase" .

Schema generale dei nomi dei test:

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

Questi test devono essere scritti sulla base del framework di test Junit o TestNG. Questi sono framework molto interessanti, ne parleremo sicuramente un po 'più tardi.

I risultati dei test sotto forma di rapporti nei formati .txt e .xml vengono salvati nella directory ${basedir}/target/surefire-reports.

Configurazione di prova

Di solito ci sono molte opzioni per eseguire i test, quindi gli sviluppatori Maven hanno creato un plug-in speciale, nei parametri per i quali è possibile impostare tutte le informazioni dettagliate sui test. Il plug-in si chiama Maven Surefire Plugin ed è disponibile all'indirizzo .

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

Nell'esempio, abbiamo detto al plugin che deve eseguire una singola classe di test, Sample.java.

Come eliminare rapidamente i test rotti

Per eseguire il progetto per il test, è necessario eseguire il comando mvn test. Ma più spesso è necessario escludere alcuni test dai test. Ad esempio, potrebbero essere rotti, impiegare troppo tempo per funzionare o per qualsiasi altro motivo.

Innanzitutto, puoi semplicemente dire a Maven di saltare i test durante la fase di costruzione. Esempio:

mvn clean package -Dmaven.test.skip=true

In secondo luogo, nella configurazione del plugin, puoi disabilitare l'esecuzione dei test:


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

E in terzo luogo, i test possono essere esclusi utilizzando il tag <exclude> . Esempio:


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