2010-04-22 9 views
5

Abbiamo un sacco di test in un progetto di maven2 e la creazione con cruisecontrol. Tuttavia la compilazione si blocca regolarmente, poiché l'annotazione del test con un timeoutL'annotazione di timeout jav di Maven2 non funziona

@Test(timeout = 5000) 

viene ignorata. Ho provato ed eseguito Maven localmente, riproducendo il fatto che il timeout è ignorato.

C'è un modo per attivare nuovamente il timeout per i test?

Attualmente utilizzo una soluzione alternativa per impostare un timeout in cruisecontrol. Tuttavia, ciò significa semplicemente che l'intera build viene annullata e non solo i test che dovrebbero fallire.

Nota: Sembra in Maven 1 c'era una proprietà per attivare il timeout JUnit che manca in Maven 2.

risposta

3

tenta di impostare il parametro forkedProcessTimeoutInSeconds del Maven Surefire Plugin:

uccidere il processo di prova biforcuto dopo un certo numero di secondi. Se impostato su 0, aspettare per sempre per il processo, senza mai timeout

Questo sembra essere un equivalente della maven.junit.timeouttest property in Maven 1 e sarà "attivare" un timeout a livello di Maven (diversa da quella annotazione) .

+0

Grazie per l'input. Qualche idea sul perché l'annotazione non funziona? – roesslerj

+0

@roesslerj Non sono a conoscenza di tutti i dettagli e ho intenzione di dichiarare l'ovvio, ma suppongo che il plugin surefire non implementa il supporto per questo. Puoi sempre provare a sollevare un problema http://jira.codehaus.org/browse/SUREFIRE. –