intellij idea gui form example application java maven maven-failsafe-plugin

java - idea - Maven a prueba de fallos no ejecuta pruebas



maven options netbeans (7)

Estaba teniendo el mismo problema y probé algunas de las opciones sugeridas aquí. Estoy desarrollando una aplicación Spring Boot usando JUnit 5. Desafortunadamente, ninguna de mis pruebas de integración (ubicadas en src/test/java y con el sufijo *TestIT.java ) fueron seleccionadas, independientemente de la publicidad del complemento para hacerlo. Intenté pasar a la versión 2.18.1, 2.19.1 e intenté eliminar las secciones <executions> y <configuration> para intentar usar incluso la funcionalidad predeterminada del complemento, pero no hubo suerte.

Finalmente cambié la versión a la última (a partir del momento de la escritura) a 2.22.0, y viola. Aquí está la configuración que agregué a la sección <build><plugins> de mi pom. Y aún mejor, no necesito agregar ejecuciones que definan la integration-test y verify objetivos que usted ve que la mayoría de las personas incluyen; Failafe ejecuta estos de forma predeterminada. También he incluido la configuración del complemento surefire, ya que lo estoy utilizando para ejecutar pruebas unitarias durante la fase de test del ciclo de vida de Maven.

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.0</version><!--$NO-MVN-MAN-VER$--> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>2.22.0</version><!--$NO-MVN-MAN-VER$ --> </plugin>

Y solo por si acaso, para decirle a surefire y failafe usar JUnit 5 , lo incluyo en mi sección <dependencies> :

<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <scope>test</scope> </dependency>

Eclipse muestra una advertencia (subrayado ondulado amarillo) debajo de la etiqueta de versión, de ahí la inclusión del error <!--$NO-MVN-MAN-VER$ --> . Estoy seguro de que hay una mejor manera de lidiar con esto, pero me funciona en este caso.

Para acelerar la prueba de esta configuración, y para evitar tener que pasar por todas las fases anteriores del ciclo de vida antes de las fases de test , integration-test o integration-test , utilicé los siguientes comandos para validar rápidamente:

  • mvn failsafe:integration-test (solo ejecuta pruebas de integración)
  • mvn surefire:test (ejecuta solo pruebas unitarias)
  • (Obviamente corro todo el ciclo de vida cuando cuenta)

Espero que esto ayude a alguien. ¡Aclamaciones!

He revisado StackOverflow y muchos otros sitios, he encontrado muchas otras publicaciones relacionadas y he seguido todas las sugerencias mencionadas, pero al final, a prueba de fallos se están saltando mis pruebas.

Mi prueba JUnit se encuentra aquí: myModule/src/main/test/java/ClientAccessIT.java

Me estoy saltando el seguro porque no hay pruebas de unidad en este módulo:

<!-- POM snippet --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin>

Y estoy tratando de ejecutar pruebas de integración con prueba de fallos :

<!-- POM snippet --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <id>run-tests</id> <phase>integration-test</phase> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin>

Sin embargo, cuando ejecuto mvn verify que veo esto:

[INFO] --- maven-failsafe-plugin:2.14.1:integration-test (run-tests) @ rest-services-test --- ------------------------------------------------------- T E S T S ------------------------------------------------------- Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0

Pasé las últimas 4 1/2 horas recorriendo, cualquier ayuda sería apreciada. Lo único que vale la pena mencionar es que tengo la configuración de Cargo y el desmontaje de un contenedor Tomcat. ¿Alguien ve el problema evidente?

re


Necesita cambiar el nombre de su clase de prueba.

Puede encontrar los nombres que el complemento busca de forma predeterminada en la documentación , como lo indica @acdcjunior:

De forma predeterminada, el Complemento Failsafe incluirá automáticamente todas las clases de prueba con los siguientes patrones de comodín:

  • " **/IT*.java " - incluye todos sus subdirectorios y todos los nombres de archivo java que comienzan con "IT".
  • " **/*IT.java " - incluye todos sus subdirectorios y todos los nombres de archivo java que terminan con "IT".
  • " **/*ITCase.java " - incluye todos sus subdirectorios y todos los nombres de archivo java que terminan con "ITCase".

Para proyectos de múltiples módulos, el proyecto secundario debe tener el complemento declarado como sigue,

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> </plugin>

versión hereda de pom padre. Sin lo definido anteriormente, el complemento solo en el pom principal no funcionará.


Sus pruebas no están en el directorio de fuentes de prueba predeterminadas src / test / java. Ver:

https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

myModule / src / main / test / java / ClientAccessIT.java

debiera ser:

myModule / src / test / java / ClientAccessIT.java

También puedes actualizar tu archivo pom (si realmente quisieras que las pruebas vivieran en main) para incluir:

<build> <testSources> <testSource> <directory>src/main/test</directory> </testSource> </testSources> </build>


También tuve un problema similar pero necesitaba que el elemento de embalaje fuera "pom". Asegúrese de que sus archivos de origen de prueba se estén compilando y agregando a la carpeta ... / target / test-classes usando el complemento compilador de maven:

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>${maven.compiler.version}</version> <executions> <execution> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin>


Tuve un problema algo similar. Mis pruebas de integración no estaban siendo recogidas. Mi proyecto es un proyecto de arranque de muelles de varios módulos. Y mi error fue que agregué maven-failafe-plugin en el POM principal. Después de juguetear con muchas opciones, coloqué el complemento a prueba de fallos en el módulo pom donde estaban presentes todas mis pruebas de integración, lo que solucionó mi problema.


Tuve un problema similar. Si no hay clases de prueba compiladas para target / test-classes, entonces revise su archivo pom y asegúrese de que el paquete no sea ''pom''.