2010-06-12 11 views
8

Tengo algunas dificultades para usar JUnit 4.5 en Eclipse, cuando uso @Antes de la anotación simplemente no hace nada (puedo usar setUp() que funciona, por supuesto, pero me pregunto qué está mal), mientras que funciona perfectamente en Netbeans. ¿Alguna idea?Eclipse JUnit @Anterior problema de anotación

+1

Publique una prueba de ejemplo para que podamos echarle un vistazo – skaffman

+4

¿Está extendiendo TestCase? Si es así, creo que ignora las anotaciones. – Pace

+0

¿especificó el buen jar para su proyecto? – Aif

Respuesta

2

Si está utilizando JUnit 4, puede simplemente anotar la clase de prueba o el método de prueba con la anotación @Test, en lugar de extender TestCase.

+0

Pregunta por la anotación @Antes de anotar, no dice nada sobre las pruebas que no se ejecutan. –

+0

Aunque esto es correcto, esto no soluciona la pregunta que OP hizo. –

4

Debido a que la leva aquí a través de una búsqueda en Google, y tuvo que cavar un poco más profundo para ver la solución real: Como @Pace dijo en los comentarios, si extend TestCase, Eclipse trata a la prueba como JUnit versión 3 o más , y no respeta la anotación @Before - también descripred aquí: JUnit + Maven + Eclipse: Why @BeforeClass does not work?

Por lo tanto, la eliminación de las causas extend TestCase soluciona el problema

2

dado que está utilizando JUnit 4+ hay dos formas de escribir un caso de prueba

1> Usted hace su clase de prueba extend TestCase. En este caso, se recogen las clases correspondientes a Junit 3 que no tienen conocimiento de la anotación @Before. En este caso, deberá sobrescribir

/** 
* Sets up the fixture, for example, open a network connection. 
* This method is called before a test is executed. 
*/ 
protected void setUp() throws Exception { 
} 

2> use anotaciones. use la anotación @Test para el método en la clase de prueba que le interesa ejecutar como prueba. No es necesario que su clase sea extend TestCase. Además, no es necesario que anule ningún método. Simplemente defina su propio método que tenga la lógica para ejecutarse antes de que se ejecute el método de prueba y anótelo con la anotación @Before.