¿Cómo se compara NUnit para C # con la función de prueba unitaria integrada con Visual Studio?

12

Necesito trabajar en equipo para desarrollar una aplicación de escritorio de mediana escala desarrollada usando C # .NET. Antes de esto, no he aplicado pruebas unitarias y desarrollo dirigido por pruebas. Soy consciente de que existen muchas herramientas y marcos para las aplicaciones de Unit Testing C #. A partir de ahora, estoy al tanto de Nunit y la instalación de pruebas unitarias integradas con Visual Studio.

Me gustaría saber, ¿cómo se comparan los dos?

Shamim Hafiz
fuente

Respuestas:

14

Hay una cierta superposición entre los dos con seguridad. NUnit es el predecesor y, como resultado, más maduro. El marco de prueba de unidad C # es más joven, pero está integrado con Visual Studio.

Vengo del mundo Java donde JUnit es el rey (hay otros, pero ninguno tan popular), y NUnit 2.5.x es una muy buena combinación con la forma en que JUnit 4 funciona. De hecho, funciona mucho mejor que la contraparte de Java.

En cuanto a la definición de prueba, estoy a favor de NUnit. Claro que MS Test tiene atributos similares (pero diferentes) que aplica a sus clases, pero creo que carece de algunas características que pueden ahorrarle algo de trabajo en algunos tipos de pruebas. Es posible que desee consultar una discusión similar sobre StackOverflow .

Me gusta el nuevo modelo de afirmación integrado en NUnit (está utilizando las afirmaciones de estilo Hamcrest ) porque son fáciles de leer y fácilmente extensibles.

  • NUnit tendrá un mejor soporte de terceros, MS Test tendrá una mejor integración (lista para usar).
  • NUnit tendrá una mejor flexibilidad y extensibilidad, MS Test sufrirá en esta área.
  • Ambos ejecutan pruebas unitarias y verifican sus resultados, ambos funcionarán para TDD.
Berin Loritsch
fuente
3

La única diferencia real que noté cuando tuve que crear un script de compilación para ejecutar en un servidor dedicado MSBUILD desde TFS, configurar nUnit up y obtener resultados de prueba nUnit fue un verdadero dolor, configurarlo y obtener los resultados para MSTest fue muy fácil.

También hubo un problema con Resharper donde las pruebas MSTest no podían ejecutarse desde el corredor de prueba. En las versiones más recientes, esto se soluciona, por lo que si tiene una versión anterior de Resharper, aún podría ser un problema.

Esta publicación de Roy Oshereve sigue siendo una buena descripción.

pd: eliminé mi otra respuesta, no fue útil en absoluto, mis disculpas por esa.

KeesDijk
fuente