Estás en lo cierto, ya que no hay una API pública para el marco mstest. Escribí un reemplazo manual para mstest un día para ver qué tan difícil era, y no es tan simple como parece (especialmente si desea aprovechar más de un núcleo de CPU), así que tenga cuidado de seguir por este camino.
Personalmente siempre acabo de ejecutar mstest.exe
programáticamente y luego analicé el archivo resultante .trx
XML. ¿Hay alguna razón particular por la que no puede usar Process.Start
para ejecutarlo?
P.S. Algunos del extraño comportamiento de MSTest.exe se resuelven si se pasa el parámetro de línea de comandos /noisolation
- dar que un ir si se siente tan inclinado :-)
Actualización: Erik menciona que quiere ejecutar la API de prueba en el hilo actual para que pueda establecer la cultura del hilo para los problemas de globalización.
Si ejecuta una prueba unitaria debajo del depurador, notará que mstest crea un grupo de subprocesos y ejecuta todas las pruebas en diferentes subprocesos, por lo que es probable que esto no funcione incluso si pudiera acceder a la API .
Lo que me propongo hacer es lo siguiente:
- Desde su prueba de aplicación "corredor", establecer una variable de entorno
- Run mstest apuntando a las pruebas específicas
- Añadir un
[ClassInitialize]
(o [TestInitialize]
) método que lee esta variable de entorno y establece la cultura
- ¡Ganancia!
Duplicar http://stackoverflow.com/questions/1564681/running-vsts-tests-without-mstest-exe –
Esta ha sido una molestia para mí también, así que la levantó como solicitud de 'usuario de voz'. Si estás leyendo esto, y sientes con fuerza, ¿puedes votar por ello? https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4619858-mstest-api –