Pregunta

Eclipse 3.7.2

Acabo de implementar un @Rule en algunas pruebas de JUnit 4, pero cuando las ejecuto en Eclipse el MethodRule No se llaman métodos.Es como si el corredor de pruebas de Eclipse no reconociera el @Rule implementaciones y no hace nada especial con los campos que están anotados con @Rule.

Incluso intenté usar una regla de método "estándar" como org.junit.rules.TestName pero no funciona correctamente (los nombres de las pruebas no se completan en la instancia).Incluso la prueba de ejemplo en el JavaDoc de TestName falla cuando se ejecuta en Eclipse.

¿Hay algún truco?¿Eclipse simplemente no es compatible con JUnit? Normas?

¿Fue útil?

Solución

Resulta que alguien había incluido un JAR aparentemente "requerido" en el classpath de ejecución del proyecto en cuestión.¡Ese JAR incorpora, entre otras cosas que no debería, los paquetes JUnit!Entonces existe este JAR, llamado algo inofensivo como our_runtime_library.jar que tiene código específico de la aplicación junto con algunas versiones desconocidas (pero antiguas) de JUnit, Spring y quién sabe qué más.Al ejecutar el proyecto como prueba unitaria, Eclipse estaba seleccionando JUnit en ese JAR en lugar de su propia versión (como debería, las bibliotecas específicas del proyecto siempre tienen prioridad), la versión (Eclipse) con la que se construye el proyecto.

Que desastre;Ahora vamos a descubrir quién merece 50 azotes por este.

Otros consejos

Debería funcionar, al menos en mi Eclipse (en JUnit 4.8 integrado).Entonces podrías mostrar tu código.

Adicional, JavaDoc dice: Note that MethodRule is now deprecated, you should be using TestRule instead.

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