Solución:
Soy parcial porque trabajo en NUnit, pero la ventaja de NUnit o xUnit es que ambos marcos ofrecen más funcionalidades, como pruebas basadas en datos, ejecución en paralelo y una serie de funciones avanzadas.
Dicho esto, MSTest no tiene nada de malo, especialmente si su equipo no tiene mucha experiencia con las pruebas unitarias. Está bien integrado con Visual Studio y con TFS, por lo que agregar pruebas es bastante sencillo. Tanto NUnit como xUnit también se integran bien, pero pueden requerir más configuración.
Continúe y comience con MSTest. Es una introducción sencilla a las pruebas unitarias. Si comienza a encontrarse con algunas de las limitaciones de MSTest, entonces es una migración bastante fácil a NUnit o xUnit. Para casos simples, es solo cuestión de cambiar sus paquetes NuGet y luego buscar / reemplazar los atributos.
Cuando se trata de elegir entre xUnit y NUnit, ambas son excelentes opciones, pero cada una tiene una filosofía diferente. NUnit tiende a ser más flexible y permite una variedad de estilos de prueba y puede usarse para pruebas de integración. Sin embargo, es lo suficientemente flexible como para permitirte dispararte en el pie y te permite escribir pruebas que los puristas desaprobarían. NUnit deja la elección a usted.
Sin embargo, xUnit tiende a ser un poco más obstinado y te empuja hacia el ‘pozo del éxito’ con las pruebas unitarias. En mi experiencia, es excelente para proyectos de campo verde, pero puede dificultar la prueba de algunos proyectos de campo marrón con una arquitectura deficiente sin refactorizar.
Al final, no puede equivocarse con ninguno de estos marcos de prueba.
Me gustaría agregar un aspecto negativo de XUnit. Ni siquiera tiene una documentación básica, nada más allá de “Get Started”. Sin API, nada.
Aquí hay un breve análisis de los 3 marcos y clasificados por color.
Leyenda del colorante:
MSTest es bueno solo porque es simple e integrado en Visual Studio y proviene de Microsoft. No es lo suficientemente flexible y no es muy extensible. Pero más que un marco de prueba unitario, también admite pruebas de integración, pruebas de rendimiento web (carga). Los otros 2 son marcos de prueba unitarios puros. Entonces yo diría que MSTest es “Jack of all Trades, Master of none”.
NUnit es mi elección porque ha sido el mejor de forma constante durante el tiempo suficiente. Es más flexible y simple con muy buena base de usuarios, documentación y soporte de la comunidad.
XUnit es el menos de mi elección porque sigue un estilo ligeramente diferente y personalmente no veo mucha ventaja sobre NUnit. En algunos casos, deberá refactorizar su código para que se ajuste a los casos de prueba. Pero esta es solo mi opinión, ya que hay muchos que prefieren XUnit.