visual-studio-2010 visual-studio nunit mstest cruisecontrol.net

NUnit vs Visual Studio 2010''s MSTest?



visual-studio-2010 visual-studio (8)

Me doy cuenta de que hay muchas preguntas anteriores que abordan la cuestión general de NUnit v MSTest para las versiones de Visual Studio hasta 2008 (como esta ).

Microsoft tiene un historial de hacer las cosas bien en su tercera versión. Para MSTest, eso es VS2010.

¿Lo han hecho con MSTest ? ¿Lo usarías en un proyecto nuevo antes que en NUnit?

Mis preocupaciones específicas:

  • velocidad
  • ejecutar pruebas dentro de CruiseControl.NET (ya sea en la línea de comandos o en la tarea MSBuild)
  • informes de cobertura de código de CC.NET
  • puedes ejecutar las pruebas MSTest en modo de depuración

(Usamos ReSharper, por lo que los correctores no son un problema para nosotros. Hemos usado NUnit durante los últimos años. No tenemos TFS).


MSUnit ejecuta sus casos de prueba en condiciones que son diferentes del entorno de ejecución real. Específicamente, los archivos implementados difieren de los que se implementan cuando ejecuta su proyecto real. No obstante, existe el atributo [DeploymentItem] para especificar qué archivos debe desplegar MSUnit. Entonces, si su aplicación depende de cualquier archivo externo, como

  • archivos de base
  • archivo de configuración de base
  • archivo de configuración de la aplicación
  • ...

entonces MSUnit no es la elección correcta, porque las pruebas MSUnit nunca cubren cómo se verá el sistema de archivos en el entorno de ejecución. La configuración del archivo de proyecto de Visual Studio para implementar archivos (copiar siempre, contenido, etc.) es ignorada por el corredor MSUnit. Entonces esas configuraciones no pueden ser probadas.


No sé mucho sobre CruseControl.net, pero puedes depurar pruebas. Actualmente no usamos TFS, y el MSTest funciona para nosotros.


Nop. Los mismos problemas con respecto a los dominios de aplicaciones y la resolución de ensamblaje aún existen. Lo evitaría a menos que desee la nueva bondad para otras pruebas funcionales o integración con Team System.


Para corregir alguna información anterior en el hilo;

  1. Es posible ejecutar pruebas de 64 bits en 2010
  2. Desde VS2008 hacia adelante, no es necesario tener MSTEST crear directorios y usar los binarios, solo deshabilitar la implementación, en 2010 es la configuración predeterminada, pero hay que configurarla en 2008.
  3. 2010 MSTEST es más rápido, pero como es un marco de prueba generalizado que también ejecuta pruebas de carga / web / UI, hay compromisos en el diseño que lo harán más lento. Jamie Cansdale parece haber logrado aumentos de perf con los últimos lanzamientos de soporte de TestDriven.net para MSTEST

Principalmente he usado NUnit, algunos xUnit y algunos MSTest. Parecen una funcionalidad equivalente, pero no me gusta el corredor de prueba MSTest. Se ejecuta en el estudio visual de modo que aglomera la pantalla o se encuentra en otro monitor interponiéndose en el camino cada vez que selecciono un tabulador en el estudio visual. (Ejecuto NUnit en otro monitor, pero no cubre todo en ese monitor cada vez que enfoco Visual Studio). Se requieren demasiados clics para descubrir qué prueba falló y por qué.

NUnit puede ejecutarse en segundo plano hasta que falle una prueba, momento en el cual le muestra información sobre la prueba de ruptura. Esto parece ser el ideal para mantener rojo / verde / refactor sin problemas.


Si cree que alguna vez ejecutará sus pruebas en el modo de 64 bits, use NUnit. MsTest es solo x86.


Una diferencia importante entre los dos es que MSTest realiza una copia de los archivos DLL actuales cada vez que ejecuta una prueba. Si está haciendo TDD y ejecuta sus pruebas con frecuencia, esto puede consumir mucho espacio en el disco duro.

Si está utilizando MSTest, puede cambiar esta configuración en Herramientas> Opciones> Herramientas de prueba> Ejecución de prueba. "Limitar el número de resultados de prueba antiguos a" está establecido en 25 de forma predeterminada en Visual Studio 2010. Por lo general, lo cambio a 1.


  • La velocidad del elemento de lista es la misma, pero MsTest puede ser un poco más lento porque crea una carpeta para ejecutar la prueba cada vez
  • MSBuid y CC.Net son un gran dolor. No puede ejecutar MSTest en la computadora sin VS en él (no está seguro de lo que es el año 2010, pero en el 2008 sí lo está)
  • no estoy seguro, lo siento
  • sí puedes, desde el estudio visual

Mi recomendación es la siguiente: si NUnit te satisface, úsalo, olvídate de MSTest