test - Ejecutar Junit Suite usando el comando Maven
mvn test (2)
Tengo varias suites de prueba Junit (SlowTestSuite, FastTestSuite, etc.). Me gustaría ejecutar solo una suite específica usando el comando maven. p.ej
mvn clean install test -Dtest=FastTestSuite -DfailIfNoTests=false
pero no está funcionando. Simplemente no ejecutando ninguna prueba en absoluto. Cualquier sugerencia por favor.
La palabra clave que perdió es maven-surefire-plugin: http://maven.apache.org/plugins/maven-surefire-plugin/ .
El uso es:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.1</version>
<configuration>
<includes>
<include>**/com.your.packaged.Sample.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
[...]
</project>
Si realiza una pequeña búsqueda en el desbordamiento de pila, puede encontrar información:
Ejecutar un JUnit4 Test Suite en Maven usando el complemento maven-failafe Usando las categorías JUnit con el complemento Maven Failsafe
Además, puede definir el perfil, como fastTest, que se activará agregando un parámetro a la línea cmd:
mvn package -PfastTests
Este perfil incluiría algunas inclusiones también.
Lo he logrado añadiendo propiedades en pom como:
<properties>
<runSuite>**/FastTestSuite.class</runSuite>
</properties>
y maven-surefire-plugin debe ser:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
por lo que significa que, de forma predeterminada, ejecutará FastTestSuite, pero puede ejecutar otras pruebas, por ejemplo, SlowTestSuite utilizando el comando maven como:
mvn install -DrunSuite=**/SlowTestSuite.class -DfailIfNoTests=false