En ce moment, j'ai les deux types de tests mais quand je dis "test mvn", il exécute uniquement les tests TestNG et non Junit. Je veux exécuter les deux l'un après l'autre. Une idée ?
Réponses
Trop de publicités?Officiel avec la sélection de fournisseurs.
Vous pouvez également spécifier plusieurs fournisseurs comme des dépendances, et ils seront tous d'exécuter et produire un rapport commun. Cela peut être particulièrement utile avec les prestataires externes, puisqu'il y a peu de cas d'utilisation pour la combinaison de l'compris les fournisseurs.
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-testng</artifactId>
<version>2.16</version>
</dependency>
</dependencies>
</plugin>
Plus d'info à ce sujet: le Mélange TestNG et JUnit tests dans un module Maven – édition 2013
J'ai une meilleure solution .
L'idée est de créer deux exécutions de maven-surefire-plugin
, une pour JUnit, une pour TestNG. Vous pouvez désactiver l'un de TestNG ou JUnit par exécution en spécifiant junitArtifactName
ou testNGArtifactName
inexistant:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<testNGArtifactName>none:none</testNGArtifactName>
</configuration>
</execution>
<execution>
<id>test-testng</id>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<junitArtifactName>none:none</junitArtifactName>
</configuration>
</execution>
</executions>
</plugin>
Il y a un sujet ouvert pour this, donc il n'y a pas de manière élégante pour ce faire.
Il serait beaucoup plus simple pour vous de choisir un cadre et rester avec elle.
Edit: Ma réponse précédente ne fonctionne pas parce que vous ne pouvez pas spécifier les dépendances dans l'exécution. J'ai tenté quelques approches, mais le mieux que je puisse gérer est de créer un profil pour le TestNG dépendance de sorte que vous pouvez basculer entre TestNG et JUnit test, il ne semble pas être un moyen d'exécuter à la fois TestNG et Junit 4 tests.
Un autre point à noter: Vous pouvez lancer votre JUnit tests de TestNG, mais je pense que cela ne fonctionne que pour JUnit 3 tests.
Grâce à ce lien ( http://jira.codehaus.org/browse/SUREFIRE-377 ), voici une solution à mon problème précédent (avoir 3 exécutions au lieu de 2)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<testNGArtifactName>none:none</testNGArtifactName>
</configuration>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<junitArtifactName>none:none</junitArtifactName>
<testNGArtifactName>org.testng:testng</testNGArtifactName>
</configuration>
</execution>
</executions>
</plugin>
J'ai trouvé que la solution était de forcer le plugin sure-fire à utiliser JUnit. J'ai fait cela en remplaçant le plugin surefire dans le projet spécifique comme suit. La dépendance oblige à coup sûr à utiliser JUnit.
<build>
<plugins>
<!-- force sure fire to use junit instead of testng -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.10</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>