Actualmente estoy trabajando en una solución que actualmente tiene 32 pruebas unitarias. He estado trabajando con el corredor de prueba resharper, que funciona bien. Todas las pruebas se están ejecutando, todas las pruebas muestran el resultado correcto de la prueba. Ahora un compañero de trabajo me dijo que las pruebas no se están ejecutando en su máquina con el explorador de pruebas de Visual Studio. Tampoco funcionan en mi máquina, por lo que puedo excluir algunos archivos locales faltantes o algo así.
El Explorador de pruebas muestra todas las pruebas unitarias, pero una vez que hace clic en "Ejecutar todo", todas las pruebas se atenúan y no muestran ningún resultado de la ejecución de la prueba:
- Todas las clases de prueba son públicas.
- Todas las clases de prueba tienen el
[TestClass]
atributo declarado - Todos los métodos de prueba usan el
[TestMethod]
atributo - Tanto el código de productividad como los proyectos de prueba están dirigidos a .NET 3.5.
- Ya he tratado de generación limpia mi solución, y / o borrar todos
obj
,bin
,Debug
yRelease
carpetas
Aprecio cualquier pista que pueda causar tal comportamiento.
fuente
Respuestas:
Si sus proyectos no son todos AnyCpu, entonces también puede verificar que las siguientes 2 configuraciones coincidan:
[Proyecto de prueba de clic derecho] -> propiedades -> Compilación -> Destino de plataforma - por ejemplo, x64
[Menú principal] -> Prueba -> Configuración de prueba -> Arquitectura de procesador predeterminada -> X64
Descubrí que cuando no coincidían, mi proyecto de prueba no se ejecutaba silenciosamente.
fuente
Tuve el mismo problema en VS 2017. En mi caso, se resolvió reiniciando VS.
fuente
Si está utilizando NUnit en lugar de MSTest, necesitará la extensión del adaptador de prueba NUnit para Visual Studio 2012/2013.
fuente
Microsoft.NET.Test.Sdk
desde NugetTuve que cambiar mis métodos de prueba asíncronos para devolver Task en lugar de anular.
Las pruebas fueron entonces activas y ejecutables en Test Explorer.
fuente
async void Foo()
y sus analizadores no se quejaron, pero ciertamente podrían agregar uno que sí lo haría. cc: @bradwilsonCompruebe en qué marco están escritas las pruebas (por ejemplo, nunit, xunit, prueba VS, etc.) y asegúrese de tener instalado el adaptador de prueba / extensión de corredor correcta.
Para mí, faltaba el adaptador de prueba NUnit 3 y confirme el número de versión requerido mirando la versión de dependencia nunit.framework (seleccione el .dll en el árbol de dependencias en el Explorador de soluciones y presione F4 para abrir la ventana Propiedades).
fuente
Microsoft.VisualStudio.QualityTools.UnitTestFramework
(no estoy seguro de qué versión). Se resolvieron problemas donde el método no se ejecuta (o se encuentra) al eliminar esa referencia e instalar el último (v2.1.0) MSTest.TestAdapter (y Framework)Microsoft.VisualStudio.TestTools.UnitTesting
desuso? Tuve algunas pruebas con esto que de repente dejaron de ejecutarse como se mencionó anteriormente después de volver a agregar algunas referencias a un proyecto del que dependían.Luché con esto por un día y medio. así que esto es lo que hice para resolverlo:
Síntomas
Investigación
Como todos los paquetes se actualizaron durante la actualización de .net framework, comencé con las diferencias entre los proyectos workin y no work. La primera pista fue que los 3 proyectos estaban usando: MSTest.TestAdapter y MSTest.TestFramework
Naturalmente, fui a - - Consola de salida -> Prueba desplegable en VS 2019 y miré la salida. Nada útil allí.
Paso uno de la solución : actualice MSTest.TestAdapter y MSTest.TestFramework a la versión 2.0.0
Paso dos de la solución : ahora la consola de salida -> La salida desplegable de prueba comenzó a mostrar uno tras otro, paquetes faltantes y redireccionamientos de enlace incorrectos
Paso tres de la solución : agregue manualmente los paquetes que faltan. Para mí esos fueron
Paso 4 de la solución : se eliminaron / repararon los redireccionamientos de enlaces no deseados.
Espero que esto ayude a alguien más.
fuente
ToolsVersion
y golpear la mía lo estropeó todo. Todo lo que puedo decir es "cuidado con el comprador" para las pruebas de unidades de MS y estar listo para reemplazar sus archivos * .csproj en cualquier momento, estas cosas están estrechamente integradas y dependen mucho de la versión.Clean-Rebuild
La solución funcionó para mí.fuente
Tuve el mismo problema después de una instalación limpia de VS 2019. Se encontraron pruebas pero no se ejecutaron con "Se produjo un error inesperado". Se solucionó configurando x64 en lugar de x86, que se seleccionó de forma predeterminada.
fuente
Descubrí que en el proyecto no hacía referencia al ensamblado Microsoft.VisualStudio.QualityTools.UnitTestFramework . En su lugar, hacía referencia a Microsoft.VisualStudio.TestPlatform.TestFramework y Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions . Cuando eliminé esas dos referencias y agregué la referencia al ensamblaje Microsoft.VisualStudio.QualityTools.UnitTestFramework , las pruebas que anteriormente estaban marcadas con el signo de exclamación azul de repente se activaron y comenzaron a funcionar.
fuente
Tuve este problema y para mí fue causado por tener múltiples proyectos de prueba con diferentes versiones de:
La consolidación de los paquetes nuget para los proyectos para que fueran los mismos resolvió el problema para mí.
fuente
En mi caso, fue porque un proyecto de prueba en mi solución tenía los paquetes nuget MSTest.TestFramework y MSTest.TestAdapter instalados, pero los otros no. Aparentemente, estos paquetes no tenían que ejecutar pruebas hasta que un proyecto de la solución los tuviera instalados.
El problema se solucionó instalando esos paquetes en proyectos de prueba que les faltan.
fuente
Lo que me solucionó fue actualizar los paquetes nuget de MS.Test
fuente
Instalar
Nunit3TestAdapter
Nuget ha resuelto este problemafuente
¡Establecer la arquitectura del procesador para proyectos AnyCPU en Test Explorer solucionó mi problema! Ver captura de pantalla arriba.
fuente
En mi caso, tenía un
async void
Método y lo reemplacéasync Task
, por lo que la prueba se ejecutó como esperaba:reemplazar con :
fuente
Tuve los mismos síntomas.
Asegúrese de tener instalada la extensión adecuada de Visual Studio a través de Herramientas - Extensiones y actualizaciones. En mi caso, tuve que instalar XUnit y Specflow desde la opción Online.
Luego limpie la solución y reconstruya.
Si eso todavía no ayuda, borre su directorio temporal (busque% temp% en la búsqueda del menú Inicio y elimine todo el contenido en Temp)
Y finalmente intente desinstalar Resharper que finalmente solucionó mi problema.
fuente
Aquí fue que el proyecto de prueba no fue marcado para ser construido:
Compilación -> Administrador de configuración ... -> compruebe compilación para su proyecto de prueba
fuente
Desde que llegué aquí con este tipo de error, publico mi problema / solución:
Síntomas
Problema:
Hubo un error en el código que arrojó una excepción dentro de otro hilo. Todas las aserciones de prueba pasaron pero canceló la ejecución de la prueba. Pude ver el error en la "Salida de pruebas" (NullException).
fuente
Tenía los mismos síntomas, en mi caso fue la versión del SDK core dotnet el problema.
Los proyectos apuntaban a 2.2 y fue capaz de construir usando 3.0. Después de instalar la versión 2.2 SDK más reciente, pudieron ejecutarse.
fuente
Puede ver la salida de error de su corredor de prueba abriendo el panel Salida (ver -> salida) y seleccionando "pruebas" en el menú desplegable "Mostrar salida desde"
Además, si tiene instalado Resharper , puede abrir un archivo de prueba y colocar el cursor sobre el círculo de prueba junto a una prueba para obtener información adicional sobre errores
Al hacer clic en eso, aparecerá una ventana con información más detallada. Alternativamente, puede abrir esa ventana yendo a Extensiones -> Reformar -> Windows -> Resultados de exploración de prueba unitaria
fuente
He probado muchas opciones con Visual Studio 2019 Versión 16.4.6 y
Microsoft.VisualStudio.TestTools.UnitTesting
, pero por ahora, la única forma de ejecutar las pruebas con éxito fue invocando el siguiente comando en la consolaLas pruebas se descubren en Test Explorer pero el resultado es "No se ejecuta".
Actualizar Visual Studio no ayudó.
Han resuelto el problema con "Ninguna prueba coincide con el filtro de caso de prueba FullyQualifiedName" ejecutando actualizaciones a la última versión para los siguientes paquetes:
fuente
Para mí, la solución fue cambiar la configuración de Prueba de unidad de Resharper "Arquitectura de plataforma predeterminada" a "x64"
fuente
Para mí, reiniciar VS2017 no funcionó. Tuve que limpiar sln y luego encontré un archivo con pruebas que no se ejecutaron y solo ejecutaron ese archivo. Después de eso, corrí todo y funcionó normal otra vez.
fuente
Tenía una versión diferente de los paquetes nuget NUnit (3.11.0) y NunitTestAdapter (3.12.0). Cuando actualicé NUnit a 3.12.0, Visual Studio ejecutó pruebas.
fuente
En mi caso, funcionó para actualizar los paquetes nuget de MSTest. Podría reproducir este problema incluso en un proyecto MSTest en blanco y la actualización de los paquetes funcionó.
fuente
Para mí, tener una propiedad llamada TestContext en una clase base estaba causando este comportamiento. Por ejemplo:
fuente
Puedo decir por tus atributos que estás usando MSTest. Tuve un problema similar: mis pruebas aparecían en el Explorador de pruebas, pero cuando intentaba ejecutarlas (ya sea eligiendo Ejecutar todo o seleccionándolas individualmente) no lo harían.
Mi problema fue que había creado el proyecto de prueba de unidad manualmente desde un proyecto de biblioteca de clases estándar .NET vacío. Había instalado el
MSTest.TestFramework
paquete NuGet, pero no elMSTest.TestAdapter
paquete. Tan pronto como instalé el paquete del adaptador, se ejecutaron como se esperaba.Parece obvio en retrospectiva, pero cuando crea proyectos de prueba unitaria a partir de una plantilla, da estas cosas por sentado.
fuente
Vale la pena mencionar que a veces los archivos de NUnit Test Adapter se corrompen en la carpeta de usuario C: \ Users [Usuario] \ AppData \ Local \ Temp \ VisualStudioTestExplorerExtensions \ NUnit3TestAdapter.3.8.0 / build / net35 / NUnit3.TestAdapter.dll en Windows 10 y eso hace que Test Explorer deje de funcionar como debería.
fuente
Yo uso VS2019 con .Net 4.7. Instalé la extensión NUnit v3 y cambié la configuración de Prueba para usar X64. Mi proyecto de prueba de unidad es Cualquier CPU (funcionaría si lo cambiara a x64). Ahora puedo depurar mi código.
fuente
Este problema también se observa cuando el método de prueba que se ejecuta arroja una excepción StackOverflowException , lo que hace que el corredor de prueba anule la ejecución de la prueba, lo que da como resultado la salida
0 tests run
.Para encontrar al culpable y resolverlo puso un punto de quiebre en el inicio de ambos TestInitialize y TestMethod decorada métodos, ejecute la prueba de la unidad en modo de depuración, pasando por encima de proceder (F10) hasta que se produce la excepción.
fuente