Come utilizzare il plug-in Maven Surefire con diversi gruppi per test e test di integrazione?
-
03-07-2019 - |
Domanda
Voglio usare testng con plug-in Surefire di Maven . L'idea è di codificare alcuni test con un gruppo integrationTest
ed eseguire il plug-in due volte: per l'obiettivo test
escludendo il gruppo integration-test
e per l'obiettivo pom.xml
includendo solo il gruppo mvn integration-test
.
Ho trovato del materiale per l'esecuzione del plug-in per entrambi obiettivi e funziona, ma il gruppo per la seconda manche non funziona (non viene eseguito alcun test).
Ecco la configurazione del plug-in nell'elemento build del mio mvn test
:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>integrationTest</excludedGroups>
<reportFormat>brief</reportFormat>
<trimStackTrace>true</trimStackTrace>
<useFile>false</useFile>
</configuration>
<executions>
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<groups>integrationTest</groups>
<excludedGroups/>
<reportsDirectory>${project.build.directory}/surefire-reports/integration</reportsDirectory>
</configuration>
</execution>
</executions>
</plugin>
Qualche idea? <=> esegue tutti i test unitari come previsto (escluso il gruppo <=>) ma il secondo test esegue solo:
Esecuzione di TestSuite
Test eseguiti: 0, Errori: 0, Errori: 0, Ignorato: 0, Tempo trascorso: 0,562 sec
Il risultato di <=> è come previsto, i test eseguiti e il gruppo <=> vengono ignorati.
Soluzione
L'ho preso - un'implementazione di configurazione irritante!
<excludedGroups/>
non sovrascrive <excludedGroups>integrationTest</excludedGroups>
. Devi invece specificare qualsiasi gruppo (sconosciuto), ad esempio <excludedGroups>none</excludedGroups>
.
Altri suggerimenti
Il Plug-in Failsafe è il modo migliore per farlo (potrebbe non essere stato disponibile quando hai pubblicato questa domanda). Aggiunge una fase di test di integrazione al ciclo di vita della build. Ti consente di eseguire le attività di installazione e smontaggio prima e dopo i test, utile ad esempio per la gestione di un contenitore incorporato.