2010-08-13 8 views
6

¿Existe una manera simple y agradable de hacer que NUnit elimine una prueba que lleva más tiempo que la especificada?NUnit: abortar la prueba si lleva demasiado tiempo

Idealmente, no solo acabaría con el dominio de la aplicación en la que se estaba ejecutando la prueba, sino que también cualquier proceso secundario iniciará la prueba.

Respuesta

7

Si está usando NUnit 2.5 puede usar el atributo Timeout para suspender la prueba después de una cantidad de tiempo especificada. Lamentablemente, deberá limpiar todos los recursos usted mismo, p. en el método TearDown compruebe si los procesos se están ejecutando y elimínelos, etc.

0

Parece un olor a prueba. En mi opinión, al configurar el tiempo de espera, intentas combatir un síntoma. Las pruebas unitarias deben ser rápidas y reproducibles (también en velocidad).

¿Por qué la prueba tarda tanto? ¿Es aleatorio "tomar mucho tiempo" (a veces se ejecuta rápido, a veces no)?

+0

Dijo procesos secundarios. Supongo que un proceso secundario está fallando de una manera que no puede detectar fácilmente. – Rup

+1

Actualmente siempre lleva un tiempo. Hasta que se solucione (lo cual tomará tiempo), puedo inhabilitarlo o hacerlo fallar en tiempo de espera. –

+2

El punto es que la prueba falla si lleva demasiado tiempo: mantiene las pruebas de la unidad ejecutándose rápidamente. ¿Qué pasa si algún código tiene un bucle infinito? Independientemente de qué tan rápido sea todo, usted quiere que el código falle rápidamente y no cuelgue el servidor de compilación ... – BrainSlugs83

Cuestiones relacionadas