Da un po 'di tempo è possibile configurare maven surefire per eseguire i test jUnit e testNG in una build. Non mi dilungherò sui motivi per cui lo sto facendo (ok, suggerimento: testNG è il nostro framework standard ma alcuni framework come jnario richiedono jUnit).Come fare in modo che maven surefire esegua correttamente JUnit e TestNG?
Il modo generale per farlo è quello di configurare il plugin infallibile in questo modo:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${surefire.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>${surefire.version}</version>
</dependency>
</dependencies>
</plugin>
Questo funziona abbastanza bene, i test JUnit e test TestNG vengono eseguiti.
MA ora vedo che testNG tenta di eseguire anche i test di jUnit (e forse viceversa) senza successo, ovviamente, perché non vedrà nessuna delle sue annotazioni, ma sembra che sia -segna i test a "passati" ... comunque, alcuni strumenti di reporting non mostrano più test falliti nei test di jUnit a meno che non commento la seconda voce di dipendenza.
Esiste un modo migliore per configurare surefire in modo che i test di entrambi i framework vengano eseguiti SOLO dai test runner?
Attraversato nella lista utenti Maven: http: //maven.40175.n5.nabble.com/maven-surefire-selection-providers-td5764817.html –