Vorrei interromperlo e contrassegnare come test di junit non eseguiti troppo a lungo (eseguiti con la build di Maven 3). Sono a conoscenza di tre modi di farlo:Contrassegna come non riuscito per troppo tempo JUnit test
1) con l'annotazione di prova con parametro di timeout:
@Test(timeout=100)
public void testWithTimeout() {
...
}
2) usando la regola della nota:
@Rule
public Timeout globalTimeout = new Timeout(100);
3) Configurazione di Maven-surefire- plugin usando le seguenti opzioni:
forkedProcessTimeoutInSeconds=1
reuseForks=false
L'indizio è 1) e 2) richiede di cambiare ogni test (fa male quando ne hai molte migliaia). 3) la soluzione non è accettabile poiché all'interno di molti moduli il primo test avvia il contesto che viene utilizzato dal test - le prestazioni dei test diminuirebbero drasticamente.
Avete altre idee su come raggiungerlo? Qualche soluzione complicata (che non implichi il patching di JUnit :))?
La mia prima domanda sarebbe: quali sono i tuoi test unitari che fanno quel risultato in così tanti timeout? Sembra che tu possa effettivamente eseguire test di integrazione o di accettazione. –
Esattamente, hai ragione. Si prega di notare che non ho menzionato che sto usando test unitari. JUnit è usato come base per l'integrazione e test funzionali. –
No, ma Maven generalmente consiglia Failsafe per i test di integrazione/funzionali: qui è possibile trovare opzioni migliori. –