Pregunta

Tengo un conjunto de pruebas JUnit 4 con BeforeClass y AfterClass métodos que hacen que una instalación / desmontaje de las siguientes clases de prueba. Lo que necesito es ejecutar las clases de prueba también por ellos mismos, pero para eso necesito un escenario de instalación / desmontaje (BeforeClass y AfterClass o algo así) para cada clase de prueba. El caso es que cuando corro la suite no quiero para ejecutar el programa de instalación / desmontaje antes y después de cada clase de prueba, sólo quiero ejecutar el programa de instalación / desmontaje del conjunto de pruebas (una vez). Es posible ? Gracias de antemano.

¿Fue útil?

Solución

No sé de ninguna manera estándar de hacer esto con JUnit. La razón de que, como probablemente ya saben, es que los casos de prueba deben funcionar de forma independiente el uno del otro. Se trata de los métodos de configuración / desmontaje "normales" que se ejecutan antes y después de cada método de ensayo. instalación y el desmontaje de clase es un poco diferente, aunque -. aunque yo todavía prefieren correr mis pruebas independiente y mantenerse fuera de la zona de problemas

Sin embargo, si realmente está convencido de lo que está haciendo, se puede utilizar un indicador global para indicar si o no la configuración de la clase / desmontaje es correr, y para comprobar su estado en los métodos de configuración de clase / desmontaje. En el banco de pruebas, se podría incluir una clase especial como el primero de todos, que no hace más que ejecutar la configuración y establecer el indicador global para indicar a los casos de prueba real de que sus métodos de configuración de la clase / desmontaje no se debe ejecutar. Del mismo modo, una última clase especial en la suite puede ejecutar el código desmontaje. La advertencia es que estoy JUnit miedo no garantiza el orden de ejecución de las clases de prueba dentro de una suite, aunque lo más probable es que no se ejecutan en el orden especificado - pero esto es sólo un detalle de implementación. Probarlo, es posible que funcione para usted -., Pero no hay garantía de que siempre hará lo que espera

Otros consejos

Si usted tiene jUnit 4.7+ recomiendo mirar en la nueva característica llamada Reglas (que se explica en esta entrada de blog ). Tal vez no sean exactamente lo que quiere, pero son probablemente el mejor que se obtiene con jUnit.

Supuestamente TestNG tiene mejor prueba de la agrupación de posibilidades, pero realmente no he mirado en él mismo todavía.

No, no hay manera estándar de hacer esto en JUnit, aunque se puede piratear algo como lo sugiere Péter Török.

Nota sin embargo que son más o menos abusando JUnit en hacer esto. El punto de unidad de prueba es que son independiente de la otra. Esto se debe a que las dependencias entre las pruebas crean una pesadilla de mantenimiento (pruebas fallan debido a la carrera en el orden equivocado).

Así que te aconsejo que considerar seriamente si no mejor es que simplemente siempre ejecutar la instalación ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top