Pruebas unitarias no descubiertas en Visual Studio 2017

He estado luchando con VS 2017 desde que lo instalé. Ahora parece que las pruebas unitarias sólo se ejecutarán desde la línea de comandos "dotnet test."

Mi proyecto es .NET Core 1.1.1. Tengo el SDK y la actualización del marco para 1.1.1 instalado.

He probado la muestra en MSDN (https://msdn.microsoft.com/en-us/library/ms182532.aspx) que también falla exactamente de la misma manera.

Todos los paquetes NuGet para las pruebas y el proyecto principal están actualizados. Y tanto el proyecto de prueba como el proyecto principal se construyen sin errores. Y las pruebas se ejecutan con éxito desde la línea de comandos.

¿Alguien ha conseguido que las pruebas unitarias se ejecuten en VS 2017, si es así cómo?

Gracias, John


Actualización - Ampliar

Aquí hay un ejemplo de un proyecto de prueba simple que no funciona en GitHub. Este es un ejemplo con xUnit pero he probado NUnit y visual studio construido en las pruebas de MS. No importa lo que las pruebas o lo que los cambios que hago no puedo conseguir el corredor de pruebas VS para encontrar cualquier prueba.

Lo que he probado

  • Borrando los archivos de caché de pruebas de VS DEL %TEMP%\VisualStudioTestExplorerExtensions.
  • Reiniciando VS
  • Cerrando/abriendo el explorador de pruebas
  • para xUnit instalar Microsoft.DotNet.InternalAbstractions (ver post SO)
  • para NUnit asegúrese de que el adaptador instalado y la misma versión (3) como paquete NUnit
  • test -> test settings -> default processor architecture se establece en x86

La pregunta ¿Puede alguien por favor proporcionar un ejemplo de trabajo de una solución .Net Core 1.1.0 en VS2017 (archivos de proyecto .csproj) donde el explorador de pruebas VS encuentra con éxito las pruebas unitarias O mostrarme el problema en el ejemplo dado.

No lea los artículos obsoletos en MSDN. Los materiales relevantes de .NET Core están en docs.microsoft.com

https://docs.microsoft.com/en-us/dotnet/articles/core/testing/

En general, necesitas una aplicación de consola de .NET Core para contener los casos de pruebas unitarias.

Comentarios (14)

En mi caso, era el proyecto UWP presente en la solución el que causaba el problema.

Cuando descargué el proyecto UWP, se descubrieron las pruebas. Cuando lo cargué de nuevo, las pruebas desaparecieron de nuevo.

Trate de descargar todos los proyectos y mantener el proyecto de prueba solamente. Diez reconstruir la solución y la prueba shound aparecen en Test Runner. Cargue los proyectos uno por uno y reconstruya la solución cada vez para averiguar qué proyecto está causando el problema

ejemplo de repo

informe de error de VS

Comentarios (1)

El problema

El problema es que Visual Studio se está 'confundiendo' con las versiones de dotnet core en la máquina. Cuando fui al panel de control -> desinstalar programas tenía 8 diferentes dotnet core SDK's y Runtimes instalado. Esto de alguna manera estaba causando VS para tener en silencio un error al tratar de encontrar las pruebas.

Validar el problema

Usted puede validar la cuestión por ir a la línea de comandos y obtener la versión de dotnet su en $ dotnet --versión. Si ves cualquier cosa excepto la última versión que tienes instalada, entonces tu máquina tiene algún desajuste y no está usando la versión correcta. Ejemplo... Si tienes instalado dotnet core 1.0.1 pero cuando obtienes la versión en la línea de comandos y dice 1.0.0 eso es un problema.

La solución

Elimine todo el material antiguo. Empecé con sólo lo que creía que tenía que eliminar (las versiones más antiguas de dotnet rc) pero seguía dando la versión incorrecta al probar el problema. Al final me decidí a hacer una limpieza completa. I...

  • Desinstalé todas las aplicaciones de visual studio (en mi máquina VS2015 y VS2017)
  • Desinstalé todas las versiones de dotnet core (incluso las más recientes)

Después de que mi máquina estuviera completamente vacía de todo VS y donet instalé sólo VS2017 (viene empaquetado con el último dotnet). Creé un proyecto de prueba xUnit y el explorador de pruebas encontró la prueba inmediatamente SOLVED.

Esto puede parecer una exageración, pero pasé dos semanas tratando de arreglar esto de otras maneras. Si tienes el problema, hazlo, aunque te lleve horas desinstalar/reinstalar elementos, probablemente te ahorrará tiempo.

Referencias

  • Ver @epestic blog post donde da más detalles sobre la fijación de la cuestión.
Comentarios (0)