reports - maven-surefire-plugin pom
Ejecute las pruebas JUnit contenidas en el frasco de dependencia utilizando Maven Surefire (3)
(Esto es simplemente replantear lo que está en un comentario de khmarbaise, pero como no se aclaró, creo que vale la pena repetirlo):
Utilice el directorio de clases de prueba en lugar de la carpeta de clases como outputDirectory:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>de.mwx.test</groupId>
<artifactId>selenium-test-base</artifactId>
<version>0.1</version>
<overWrite>true</overWrite>
<outputDirectory>
${project.build.directory}/test-classes
</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Tengo un frasco en mi repositorio de Maven que contiene las pruebas de Junit, que deben ejecutarse en diferentes proyectos, ya que puede inspeccionar el proyecto y probar ciertas características del mismo. Desafortunadamente, surefire no selecciona las pruebas que están contenidas en un frasco, como muestra esta Solicitud de Función .
En la solicitud de características, proponen desempaquetar el frasco para luego ser ejecutado por surefire.
Desempaqué con éxito el frasco utilizando el complemento de dependencia de maven, pero las pruebas contenidas no se ejecutan de todos modos. Así es como configuré el complemento de dependencia de maven para descomprimir mi jar:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>process-test-classes</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>de.mwx.test</groupId>
<artifactId>selenium-test-base</artifactId>
<version>0.1</version>
<overWrite>true</overWrite>
<outputDirectory>
${project.build.directory}/classes
</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Cualquier ayuda será bien recibida.
Como se describe en el problema, debe tener una Suite que se encuentra en su proyecto que NO se encuentra en el frasco de prueba.
Hay una nueva forma de ejecutar una prueba en maven desde otro frasco. desde la versión 2.15 de maven-surefire-plugin, puede decirle a maven que escanee sus frascos de prueba en busca de pruebas y las ejecute. No es necesario extraer el tarro de pruebas. Solo agregue una dependencia a su frasco de prueba y:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.15</version>
<configuration>
<dependenciesToScan>
<dependency>test.jar.group:test.jar.artifact.id</dependency>
</dependenciesToScan>
</configuration>
</plugin>
Tomó estas cosas de https://gist.github.com/aslakknutsen/4520226 y https://issues.apache.org/jira/browse/SUREFIRE-569