ejemplo - Visual Studio 2012 MSTest vs NUnit pros y contras
unit test c# visual studio 2017 (5)
¿Has investigado la funcionalidad de Rasgos de VS? blogs.msdn.com/b/visualstudioalm/archive/2012/11/09/…
La agrupación es mucho mejor en mstest (actualización 2012 1) en comparación con nunit.
Tenemos que decidir qué tecnología utilizar para nuestras pruebas unitarias. Actualmente usamos Visual Studio 2010 y no estamos contentos con MSTest que vino con eso. Tiene errores, es deficiente en la implementación (por ejemplo, el directorio de salida de configuración de prueba no se reconoce correctamente) y tiene varios problemas al intentar probar ensamblajes en versiones de 32 bits y 64 bits. Para empeorar las cosas, MSTest no tiene una buena compatibilidad de impedancia con nuestro sistema de compilación Jenkins. Por lo tanto, pensamos en mudarnos a NUnit. Sin embargo, nadie en nuestro equipo tiene una buena exposición a NUnit. Además, pronto nos mudaremos a Visual Studio 2012.
Necesito saber los pros y los contras de la versión más reciente de Visual Studio 2012 MSTest vs Nunit . Como la mayoría de los artículos sobre desbordamiento de pila están relacionados con versiones anteriores de VS, no están relacionados con nosotros. Supongo que Microsoft ha mejorado mucho en MSTest desde 2010. Proporcione una comparación imparcial con los problemas técnicos detallados que haya enfrentado en ambas tecnologías ( solo versiones más recientes )
@Biranchi: ya no importa qué marco de prueba unitario utilizas en Visual Studio 2012 (y en adelante). Vea mi blog aquí, la secuela de la que se refiere. http://blogs.msdn.com/b/visualstudioalm/archive/2012/11/20/part-2-using-traits-with-different-test-frameworks-in-the-unit-test-explorer.aspx
Incluso puede mezclar y combinar pruebas de diferentes marcos, ¡incluso puede hacerlo hasta el nivel del método!
Esto significa que incluso puede mover el código heredado de uno a otro sin efectos secundarios negativos.
También vea esto para saber cómo usar Nuget para instalar el adaptador NUnit en la solución, liberando al desarrollador para que lo instale ella misma. http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/11/part-3-unit-testing-with-traits-and-code-coverage-in-visual-studio-2012-using-the-tfs-build-and-the-new-nuget-adapter-approach.aspx
@Sriwantha: MSTest es un marco más simple que NUnit. NUnit (y también XUnit) le dan más flexibilidad, lo que también genera menos código para escribir. Un ejemplo: si está utilizando categorías (y debería), MSTest requiere una categoría para decorar todos los métodos. NUnit le permite decorar la clase, que tendrá efecto para todos los métodos de esa clase. NUnit también le permite usar categorías fuertemente tipadas
public class Integration : Category {}
Esto es suficiente para declarar una categoría que puede usar en lugar de
Category("Integration");
donde te arriesgas a errores ortográficos.
NUnit tiene un soporte mucho mejor para las pruebas basadas en datos. NUnit también tiene soporte para theories
para nombrar unos pocos.
Una cosa más para agregar aquí. Parece que el motor MSTEST no funciona bien con TFS Build en ciertos escenarios. Si está utilizando la compilación TFS, no informará las pruebas omitidas (marcadas con el atributo Ignorar). Solo incluirá Assert.Inconclusive. Si eso es un problema, debe usar NUnit en lugar de MSTest.
VS2012 permite la categorización de pruebas en grupos si tiene "Actualización 1" o posterior: http://msdn.microsoft.com/en-us/library/hh270865.aspx#BKMK_Grouping_and_filtering_the_test_list
Estoy usando MSTest y NUnit en este momento. IMHO NUnit sigue siendo una mejor solución. Si tienes la edición Premium de Visual Studio 2012, entonces es bastante agradable, excepto por el hecho de que no puedes agrupar las pruebas. Me gusta el hecho de que esté integrado en Visual Studio, pero la falta de agrupamiento y la posibilidad de ejecutar un subconjunto de pruebas sin seleccionarlas manualmente es un gran problema.
El análisis de cobertura también es bastante limpio en Premium. Es rápido y te brinda lo que necesitas rápidamente. Aunque es una característica Premium.
Dado que todavía faltan funciones en MSTest (incluso las funciones eliminadas desde vs2010), seguiría recomendando utilizar NUnit para las pruebas unitarias. Los beneficios incluyen la agrupación de pruebas por espacio de nombres, la capacidad de agregar anotaciones de casos de prueba (ejecutar la misma prueba varias veces con diferentes parámetros) y funciona bien con Opencover y Generador de informes para el análisis de cobertura. El principal problema citado es que no está integrado como MSTest, por lo que realmente depende de cuánto le importe si es o no es una estafa.