visual unitarias unit test studio pruebas ejemplo basics visual-studio-2010 unit-testing command-line

visual studio 2010 - unitarias - ¿Cómo ejecutar TODAS las pruebas en mi solución usando la línea de comandos MSTest.exe?



unit test c# visual studio 2017 (4)

Es posible que desee echar un vistazo al Gallio.Echo prueba Gallio.Echo que viene con la plataforma de automatización de prueba Gallio . Es un paquete gratuito (OSS) con muchas herramientas de informes y corredores de prueba convenientes y que es compatible con la mayoría de los marcos de prueba existentes (MbUnit, NUnit, MSTest, xUnit, etc.)

Más específicamente, Gallio.Echo es un versátil corredor de prueba de línea de comando. Puede especificar una lista de conjuntos de prueba, varios filtros y muchas opciones adicionales. Gallio consolida los resultados de la prueba en un solo informe (Xml, Html, Zip, etc.)

De acuerdo con MSDN here y discutido here , podemos usar MSTest.exe para ejecutar pruebas desde la línea de comandos, lo cual es mucho más rápido que ejecutarlo dentro del IDE (especialmente lento si está trabajando en una solución grande como yo).

Mi pregunta es ¿cómo puedo usar MSTest.exe para ejecutar todas las pruebas en mi solución ? El comando solo tiene la opción /test para filtrar las pruebas en un ensamblaje especificado en la opción /container . Solo puedo pensar en llamar este comando N veces, dado que puedo tener todo el ensamblaje de prueba N en mi solución (!?) Además, los resultados después de la ejecución son conceptos básicos por ensamblado, por lo que no es fácil obtener las pruebas fallidas / pasado.

Si conoces una mejor manera, ¡por favor comparte! ¡Gracias!



Necesitaba lo mismo, sin querer instalar nada o generar archivos vsmdi , así que se me ocurrió este script de PowerShell continuación. Ejecuta TODAS las pruebas en un comando en una carpeta y son subcarpetas (no solución , pero está bien para mí).

Siéntase libre de sugerir cómo hacer que este script sea más elegante:

$x = ""; dir */bin/*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x"

Instrucciones:

  • Agregue la ruta a mstest.exe través de Environment variables variables de Environment variables PATH , de lo contrario simplemente reemplace mstest con su ruta completa en el script de PowerShell anterior.

  • Abre PowerShell , pega el comando.
  • Modifique */bin/*test*.dll para satisfacer sus necesidades. En la secuencia de comandos actual obtendrá todas las DLLs en la carpeta bin recursivamente, que contiene la subcadena "prueba" en el nombre del archivo.
  • ¡Ejecuta el comando!

Solo usa:

mstest.exe /testcontainer:yourTests.dll /resultsfile:res.trx

y ejecutará todas las pruebas en ese ensamblado, y escupirá los resultados en el archivo especificado.