2008-10-24 8 views
5

El marco de prueba de la unidad de Microsoft ha entrado en huelga repentinamente.VSTestHost.exe ha dejado de funcionar: no se pueden ejecutar las pruebas unitarias

Cuando intento ejecutar pruebas en VS2008, aparece un cuadro de diálogo con el mensaje "VSTestHost.exe ha dejado de funcionar".

Tengo Visual Studio Team System 2008 (versión 9.0.30729.1 SP) ejecutándose en Vista con todas las actualizaciones aplicadas.

El "Informe de problemas y soluciones" sugiere que "Actualizo a la última versión comercial de Visual Studio Team Edition para comprobadores de software", lo cual no es correcto.

He intentado reiniciar.
He intentado "devenv/resetuserdata"

Estos no hicieron ninguna diferencia.

Me gustaría volver a MbUnit basándome en estas tonterías, pero esa no es mi elección.
¿Alguna sugerencia sobre cómo solucionar esto?

Respuesta

7

Esto generalmente se debe a algo incorrecto en el código como un bucle sin fin, o una referencia circular.

Tuve el mismo problema y me di cuenta de que era mi código el que estaba estropeando, y el marco de prueba simplemente se estaba protegiendo de mi código al apagarse.

La clave para mí fue que sucedió lo mismo con dos marcos de prueba diferentes. Entonces tenía que ser mi código.

1

He encontrado el problema por el que estaba preguntando, y fue por mi culpa. Había codificado un desbordamiento de la pila: rediseñé un código en un método de extensión, lo renombré para que coincidiera con el método de extensión de Linq que llamaba, y por eso lo llamé auto recursivamente.

Las lecciones que aprender de esta:
1:"select" isn't broken. Fui demasiado rápido para culpar al framework, debido a su mala reputación.

2: Pero tenía un mensaje de error patológico general y totalmente engañoso.

En los casos en que el mensaje de error es tan malo, una buena técnica de depuración es tratar de precisar qué hace y qué no causa el error. En mi caso, el avance vino tan pronto como noté que no era "la ejecución de la prueba" la que fallaba, solo se ejecutaba con pruebas de bases de datos Sql: el objeto de dominio y la prueba de repositorio ficticio podían funcionar bien, así que tenía que ser algo sobre el código que estaba ejecutando. Y que el depurador entraría en las pruebas. Supuse por los errores calamitosos que ni siquiera estaba llegando tan lejos.

0

¿Ha intentado ejecutar una reparación en Visual Studio o incluso restablecer a la configuración de fábrica?

Para restablecer los ajustes de fábrica, ejecute devenv/ResetSettings desde la ventana de ejecución.

1

Es importante tener en cuenta que, si bien el mensaje de error que explica que VSTestHost.exe dejó de funcionar no fue muy descriptivo. En los resultados de la prueba hay un enlace que dice "Prueba finalizada" (o en su caso habría dicho "Falló la prueba") al hacer clic en esto, habría visto el mensaje de error exacto que causó que el host de prueba fallar (la excepción de desbordamiento de pila).

Entierran esa información, pero es útil saber especialmente cuando el host no se cuelga pero algunas de las pruebas simplemente no funcionan, a veces la información de por qué se puede encontrar en ese enlace.

Cuestiones relacionadas