2010-08-13 17 views
6

Esiste un modo semplice e intuitivo per fare in modo che NUnit uccida un test che richiede più di un determinato periodo di tempo?NUnit: interrompi il test se impiega troppo tempo

Idealmente non ucciderebbe solo il dominio dell'app in cui era in esecuzione il test, ma anche qualsiasi figlio elaborasse il test avviato.

risposta

7

Se si utilizza NUnit 2.5 è possibile utilizzare l'attributo Timeout per interrompere il test dopo un intervallo di tempo specificato. Sfortunatamente dovrai pulire tu stesso tutte le risorse, ad es. nel metodo TearDown controlla se i processi sono in esecuzione e li uccide, ecc.

0

Questo sembra un odore di prova. Secondo me, con l'impostazione del timeout si tenta di combattere un sintomo. I test unitari dovrebbero essere rapidi e riproducibili (anche in velocità).

Perché il test impiega così tanto tempo? E 'anche "prendere a caso" a caso (a volte esegue velocemente, a volte no)?

+0

Ha detto che i processi figlio. Immagino che un processo figlio stia fallendo in un modo che non può facilmente rilevare. – Rup

+1

Attualmente ci vuole sempre un po '. Fino a quando non viene risolto (che richiederà del tempo), posso disabilitarlo o farlo fallire nel timeout. –

+2

Il punto è, il test FAIL se richiede troppo tempo - mantiene i test dell'unità in esecuzione rapidamente - Cosa succede se qualche codice ha un loop infinito - indipendentemente dalla velocità di tutto, vuoi che il codice fallisca rapidamente e non appendere il server di build ... – BrainSlugs83

Problemi correlati