Domanda

Ho scritto diversi metodi di prova JUnit per testare la mia Java Swing GUI (utilizzando FEST ). La mia classe è nel seguente 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() { ... }

}

Quando ho eseguito questa classe in Eclipse, si corre solo il test Testa, e non TestB o TestC. Se io commento Testa, TestB corre - così sembra per eseguire solo il primo test ogni volta .

JUnit in 'corre: 2/3' Eclipse spettacoli. Dopo aver completato il primo test, ma non progredire ulteriormente, o mostrare eventuali errori

C'è qualcosa che sto facendo male? Sto usando JUnit 4.8.1 e 1.2 FEST.

È stato utile?

Soluzione

Ho il sospetto che si ha un effetto collaterale in testA che sta bloccando il codice in testB esecuzione. E 'difficile dire che cosa sta accadendo, senza i dettagli in testA e testB, ma posso darvi alcune indicazioni generali.

si è fuori ad un buon inizio commentando testA. Quando si esegue questa operazione, fare entrambe le cose e testB testC periodo?

Prova il drill-down in testA e lentamente commentando i dettagli in ciò che è testA sotto fino a test eseguiti sia testA e testB. Una volta fatto questo, è almeno il know dove è il problema.

Per esempio, se si guarda il codice qualcosa del tipo:

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

Commento fuori tutto dopo doX() e vedere cosa succede. Se funziona, allora doY() rimuovere il commento e vedere cosa succede. Se non lo fa il lavoro, poi il drill-down in doX() e iniziare commentando e ri-esecuzione di nuovo i test.

Questo dovrebbe aiutare a individuare i dettagli di dove le cose stanno andando male. Se siete ancora perplessi quando a capire questo, tornare indietro e fare una domanda intorno a questi dettagli.

Buona fortuna trovare il vostro bug!

Altri suggerimenti

Sembra che il tuo frammento di codice è OK.

È possibile controllare se ogni metodo @Test è indipendente per gli altri, ogni metodo di prova non dovrebbe condividere stesso contesto. Garantire @Before e @After hanno comportamenti corretti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top