visual unit tests test studio intellitest generate ejemplo visual-studio-2017 mstest

unit - Guía para ejecutar pruebas utilizando MSTest v1 en Visual Studio 2017 15.8.1



visual studio test (2)

Me actualicé a Visual Studio 2017 la semana pasada. Una solución con varios proyectos de prueba utilizando MSTest v1 parecía estar bien al principio. La mayoría de los proyectos de prueba ejecutan pruebas bien. Esto es .NET Framework, no .NET Core.

Sin embargo, hay un proyecto donde estoy encontrando problemas. Es un proyecto de prueba de integración, lo que significa que ejecuta pruebas de aplicaciones web con ChromeDriver y Selenium. Este proyecto hace referencia a NUnit, aunque esa referencia proviene de otra referencia de proyecto. En realidad no estoy usando NUnit como marco de prueba.

Este es el error al intentar ejecutar cualquier prueba en ese proyecto de prueba en particular: Could not find test executor with URI ''executor://mstestadapter/v1''. Make sure that the test executor is installed and supports .net runtime version . Test project {name} does not reference any .NET NuGet adapter. Test discovery or execution might not work for this project. It''s recommended to reference NuGet test adapters in each test project in the solution. Could not find test executor with URI ''executor://mstestadapter/v1''. Make sure that the test executor is installed and supports .net runtime version . Test project {name} does not reference any .NET NuGet adapter. Test discovery or execution might not work for this project. It''s recommended to reference NuGet test adapters in each test project in the solution.

Deshabilitar la opción indicada abajo hizo que todo funcionara:

Encontré esta solución después de examinar las notas de la versión preliminar en https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-preview-relnotes#--visual-studio-2017-version-158-preview-4 (desplácese hacia abajo hasta "... What''s New ..." y luego .NET Test Adapter Extension). Menciona este cambio de ruptura (aunque no rompió mis otros proyectos), pero no se menciona qué hacer para resolver el problema.

Por supuesto, a largo plazo, mantener esa opción sin marcar no parece factible. Así que estoy buscando orientación sobre cómo proceder.

Ya intenté ver si podía actualizar "rápidamente" a MSTest v2, pero eso tenía un problema porque no se podía encontrar System.Runtime 4.1.2. Intenté agregar System.Runtime 4.3.0 a través de NuGet, pero eso no resolvió el problema.


"... pero eso tuvo un problema porque no se pudo encontrar System.Runtime 4.1.2".

Creo que esta es una configuración en la aplicación .config que no se actualiza cuando se actualizan las configuraciones del proyecto. Busqué System.Runtime en la carpeta de paquetes y luego cambié mi app.config para coincidir con lo que encontré, y luego ese problema en particular desapareció.


Sería interesante comprender cómo se hace referencia en este proyecto al ensamblaje de la estructura MSTest V1 (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll). La casilla de verificación de compatibilidad que también se deshabilitó en la imagen de arriba debería garantizar que este proyecto tenga pruebas MSTestV1 y pruebas de ejecución habilitadas. Si no es así, por alguna razón, la lógica de detección está bloqueada y debe solucionarse: un fragmento de cómo se hace referencia al ensamblaje sería útil allí.

En cuanto a pasar a MSTest V2, este blog debería ayudar: https://blogs.msdn.microsoft.com/devops/2016/06/17/taking-the-mstest-framework-forward-with-mstest-v2/ . Y para el problema específico que parece estar encontrando, este problema de github en el repositorio suena similar: https://github.com/Microsoft/testfx/issues/184 .