visual-studio-2008 - snippets - visual studio code terminal




Cómo facilitar el TDD con MSTest/VS2008 (7)

He leído una y otra vez que el TDD / prueba primero es más difícil con MSTest que con otros frameworks de prueba como nUnit, MBUnit, etc ... ¿Cuáles son algunas soluciones manuales sugeridas y / o bits de terceros que sugieres? cuando MSTest es la única opción debido a la política de infraestructura? Principalmente me estoy preguntando sobre VS 2008 Team Suite, pero supongo que las sugerencias para VS 2008 Pro up up serían adecuadas también, ya que algunas funcionalidades de MSTest también se incluyen con esas versiones.


Desarrollé TDD usando NUnit durante varios años y he estado usando MSTest durante aproximadamente 4 meses debido a un cambio de rol.

No creo que MSTest impida que alguien haga TDD. Todavía tienes todas las cosas básicas que necesitas para TDD, como las afirmaciones básicas y los marcos burlones (yo uso Rhino Mocks).

MSTest se integra estrechamente con Visual Studio, el mejor componente de esta integración es la herramienta de cobertura de código integrada.

PERO Hay una serie de razones convincentes para no usar MSTest. Los dos puntos de mayor rechazo en mi opinión son:

  1. La falta de opciones de afirmación (en comparación con NUnit)
  2. El corredor de prueba lento (lento en comparación con NUnit)

Esto significa que escribir afirma que tomar más código en combinación con un corredor de prueba lento significa que todo el proceso es más lento que NUnit. Las opciones de código abierto también tienen mucho más soporte en la comunidad.

Si está utilizando TFS para CI, deberá pasar por algunos aros / hacks para que NUnit publique los resultados de las pruebas. Ejecutar pruebas en TFS con MSTest en comparación es muy fácil y directo. Si no tocas TFS antes que ir a NUnit, es simplemente mejor.


Hay muchos archivos de configuración con mstest, por lo que es menos recomendable.
Otra razón por la que elegí mbunit es la función "rollback" de mbunit. Esto le permite deshacer todas las cosas de la base de datos realizadas en esta prueba, por lo que puede hacer pruebas de circuito completo y no preocuparse por la contaminación del estanque después de la prueba.
También falta de instalaciones de RowTest en mstest.

Sugiero simplemente ejecutar mbunit como una dependencia dentro del proceso de compilación, es bastante fácil simplemente flotarlo con su contenedor, y hacer referencia, no requiere instalación.


Mi colega Mike Hadlow tiene un buen resumen de por qué detestamos a MSTest aquí .

Ha logrado eliminarlo de su proyecto, pero actualmente estoy trabajando en un proyecto más grande con más política involucrada, así que todavía lo estamos usando.

El resultado es que quien implementó MSTest no entiende TDD. Lamento sonar como un M $ basher, realmente no lo soy. Pero me molesta que tenga que aguantar una herramienta muy pobre.


No he visto ningún problema serio con MSTest. ¿De qué estás hablando específicamente? De hecho, nos estamos alejando de NUnit a MSTest. Sin embargo, no sé nuestros motivos para esto.


Si no tiene más remedio que usar MSTest, aprenda los atajos de teclado. Harán tu vida un poco más fácil.

Prueba en contexto actual: CTRL + R , T
Todas las pruebas en solución: CTRL + R , A

Pruebas de depuración en contexto actual: CTRL + R , CTRL + T
Depurar todas las pruebas en la solución: CTRL + R , CTRL + A


Tengo curiosidad aquí. Lo que no entiendo es que la gente comience a comparar todas las herramientas de código abierto disponibles con MSTest y comiencen a criticarlo. Al comentar lo difícil que es, lo poco entusiasta, etc. En mi humilde opinión, es porque es fundamentalmente diferente de los marcos xUnit. Está optimizado para ejecución paralela.

Incluso el qurik de tener ClassInitialze y Cleanup estáticos y tener TestContext único para cada una de las pruebas, todo debido a la próxima generación -al menos para los programadores comerciales de Windows en lenguajes MS-, los conceptos paralelos de programación.

Tuve la desgracia de trabajar en un proyecto con decenas de miles de pruebas unitarias. ¡Solían tomar casi todo el tiempo de compilación! Con MSTest, reducimos eso a líneas de tiempo muy manejables.


  • MSTest tiene "alta fricción": obtener un script de compilación con NAant y MbUnit en comparación con MStest y MSBuild. Sin comparación.
  • MSTest es Slow MbUnit y NUnit están en mi experiencia más rápido (galio puede ayudar aquí)
  • MStest agrega un montón de cosas que no necesito, como archivos de configuración por cable, etc.
  • MSTest no tiene el conjunto de fetaure de otros marcos de prueba del sistema operativo. echa un vistazo a xUnit y MbUnit

Es demasiado difícil de usar y hay muchas opciones mejores.







mstest