Pregunta

He escrito varios métodos de prueba Junit para probar mi GUI Java Swing (usando Festival). Mi clase está en el siguiente formato:

public class Tests
{

    @BeforeClass
    public static void beforeClass() throws Exception { ... }

    @Before
    public void before() throws Exception { ... }

    @After
    public void after() throws Exception { ... }

    @AfterClass
    public static void afterClass() throws Exception { ... }

    @Test
    public void testA() { ... }

    @Test
    public void testB() { ... }

    @Test
    public void testC() { ... }

}

Cuando ejecuto esta clase en Eclipse, solo ejecuta la prueba de testa, y no TestB o TestC. Si comento Testa, TestB se ejecuta, por lo que parece ejecutar la primera prueba cada vez.

Junit en Eclipse muestra 'Runs: 2/3' después de que haya completado la primera prueba, pero no progresa más ni muestra ningún error.

¿Hay algo que esté haciendo mal? Estoy usando Junit 4.8.1 y Fest 1.2.

¿Fue útil?

Solución

Sospecho que tienes un efecto secundario en testA que está bloqueando el código en testB de correr. Es difícil decir qué está sucediendo sin los detalles en testA y testB, pero puedo darte una guía general.

Te has vuelto bien comentando testA. Cuando hagas esto, haz ambos testB y testC ¿correr?

Intenta profundizar en testA y comentando lentamente los detalles en lo que hay debajo testA Hasta que las pruebas ejecuten ambos testA y testB. Una vez que hayas hecho esto, al menos lo sabes dónde el problema es.

Por ejemplo, si su código se parece:

public void testA() {
    doX();
    doY();
    doZ();
    // Assert stuff
    ...
 }

Comenta todo después doX() y mira lo que pasa. Si eso funciona, entonces descomnación doY() y mira lo que pasa. Si no funcionó, luego profundice en doX() Y comience a comentar y volver a ejecutar sus pruebas nuevamente.

Esto debería ayudarlo a identificar los detalles de dónde van las cosas mal. Si todavía está perplejo cuando se resuelve esto, regrese y haga una pregunta sobre esos detalles.

¡Buena suerte encontrando tu error!

Otros consejos

Parece que su fragmento de código está bien.

Puede verificar si cada método @test es independiente Para otros, cada método de prueba no debería compartir el mismo contexto. Asegurar @Before y @After tener comportamientos correctos.

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