Fondo rápido: He estado buscando un problema de ejecución de prueba Maven/Surefire durante días, y lo he reducido a un pequeño número de pruebas sospechosas. El comportamiento que estoy viendo es insano. Comienzo con mvn clean test
: se ejecutan 250 pruebas, se omite 0. Ahora, muevo la prueba sospechosa al src/test/java
y vuelvo a intentarlo: ¡se ejecutan 146 pruebas, se omite 0! La salida de Maven da no pista de que no se están ejecutando otras pruebas, incluso con el indicador -X
.Si yo ignoro una clase de prueba en JUnit4, ¿@BeforeClass aún se ejecuta?
Esto me lleva a mi pregunta: ¿la razón por la que llamo la prueba de 'sospechoso' es que toda la clase está decorado con @ignore, por lo que se imagina que ello mis fuentes de prueba debe tener ningún efecto en absoluto . Entonces se me ocurrió que esas clases tienen los métodos @ BeforeClass/@ AfterClass que manage a dummy Zookeeper server. Se ha traducido en un comportamiento inseguro antes, por lo que tenemos las pruebas @Ignored.
Si JUnit ejecuta el código de antes/después pero ignora las pruebas, no tengo idea de lo que podría pasar (pero probablemente sería súper malo). Está sucediendo esto? Se supone que pase esto? Si es así, ¿cómo se supone que decir "como referencia, aquí hay una prueba que debería funcionar pero necesita ser reparada" cuando incluye @BeforeClass/@AfterClass? También de gran interés: ¿qué demonios está haciendo esto con Surefire/Maven, que causa pruebas no relacionadas con caerse de la faz de la tierra?
En mi máquina 'mvn clean test' no ejecuta' @ BeforeClass' en una clase '@ Ignore'. El contador 'Omitido' está aumentando en solo uno independientemente de la cantidad de métodos @Test en la clase @Ignore. (Maven 2.2.1, jUnit 4.9) Debería adjuntar algunos códigos y números de versión. ¿Estás usando un corredor de prueba personalizado? – palacsint
No estoy usando un corredor personalizado. Es Maven 3.0.algo, JUnit 4.8.1. – Coderer
¿Cuál es el número de versión de su plugin surefire? – palacsint