2010-09-10 5 views
6

Estoy tratando de encontrar un marco de prueba de unidad, para la plataforma .NET, que pueda manejar pruebas con más de un hilo.Marco de prueba de unidad .NET que puede manejar pruebas con más de un hilo

NUnit no admite pruebas que abarquen hilos, ya que, por ejemplo, las excepciones en esos hilos no se tienen en cuenta. Hay una extensión de Roy Osherove, pero está bastante anticuada 1.

MBUnit permite que muchos subprocesos ejecuten una prueba simultáneamente, sin embargo, no sé si admite subprocesos creados dentro de un subproceso. Por ejemplo, para probar una recopilación concurrente, quiero que diferentes tipos de subprocesos (hilos de productor e hilos de consumidor) se ejecuten simultáneamente. Tener varios subprocesos ejecutando el mismo código de prueba no es suficiente.

Gracias Pedro

+0

Creo que el resultado de las pruebas unitarias debe ser reproducible. Lo que ocurre con el multihilo es que la ocurrencia de condiciones de carrera y otros problemas de temporización dependen en gran medida del entorno en el que se está ejecutando el caso de prueba. Entonces esto me suena un poco contradictorio. – Jan

+0

@ Jan Estoy de acuerdo en que necesitarías un control enorme para poder reproducir. Ejecutar una prueba de unidad con subprocesos significaría que el marco de prueba debe hacerse cargo por completo de la programación/subprocesamiento desde Windows, y usted tendría que especificar cada combinación de interrupciones de manera explícita. – Stefan

Respuesta

1

Estoy asumiendo que su principal problema es que las excepciones que no suceden en el "hilo de prueba" (es decir, el hilo principal) no dan lugar a fallo de la prueba.

El hecho de que se ignoren estas excepciones se puede controlar de alguna manera. Me explico este tema en un blog en términos del corredor de prueba ReSharper, pero la misma situación se aplica al corredor NUnit:

ReSharper test runner – hidden thread exceptions

La clave es la configuración de legacyUnhandledExceptionPolicy para el ejecutable que ejecuta las pruebas.

Cuestiones relacionadas