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>
GO TO FULL VERSION