ACTUALIZACIÓN: Agregar un 2019; El mecanismo de integración de descubrimiento / corredor es el mismo que para 2017 y 2015, por lo que las cosas clave que pueden salir mal son las mismas.
He leído por qué el corredor de xUnit no encuentra mis pruebas, lo que cubre las razones por las cuales xUnit nunca podría encontrar sus pruebas, pero mi problema es diferente: estoy seguro de que no hay nada sutil en mis pruebas; (han trabajado en otros entornos, esto parece ser solo mi máquina): el Visual Studio Test Runner en Visual Studio 2015 [Community Edition] simplemente no muestra ninguna de mis pruebas. No estoy haciendo nada remotamente emocionante; las pruebas se dirigen a xUnit.net v2 en el escritorio.
He buscado en la ventana Salida y no veo nada en Prueba en las pestañas Mostrar salida .
fuente
Respuestas:
Elimine las excepciones de descubrimiento de sus consultas; vaya a la ventana de salida (Ctrl-Alt-O), luego cambie el resultado del menú desplegable (Shift-Alt-S) a Pruebas y asegúrese de que no haya excepciones de descubrimiento
Prueba | Configuración de prueba | La arquitectura de procesador predeterminada puede ayudar si sus pruebas son específicas para x86 / x64 y el descubrimiento desencadena excepciones relacionadas con bittingness, es decir, no AnyCpu
Como se sugiere en esta respuesta (votar si la técnica ayuda) ejecutar el corredor de la consola de escritorio ( instrucciones ) puede ser una buena verificación cruzada para eliminar otras posibilidades, por ejemplo, archivos de configuración destrozados:
NOTA El
xunit.runner.console
paquete está en desuso: cuando obtiene cosas que funcionan en VS, también podrádotnet test
ejecutarlas en contextos de CIVaya a leer la documentación : es completa, actualizada, incluye información de solución de problemas y toma PR: -
Los siguientes pasos me funcionaron:
(Solo si sospecha que hay un desorden grave en su máquina; en general, el caso más común es que la integración de Visual Studio simplemente todavía no está instalada)
Haga lo
DEL %TEMP%\VisualStudioTestExplorerExtensions
que le aconsejan: -PS> del $env:TEMP\VisualStudioTestExplorerExtensions
Instale el paquete NuGet
xunit.runner.visualstudio
en todos los proyectos de pruebaPaquete:
Debe terminar con lo siguiente en su
paket.dependencies
:nuget xunit.runner.visualstudio version_in_path: true
Tenga en cuenta que el
version_in_path: true
bit es importanteNuget: vaya a la consola del Administrador de paquetes (Alt-T, N, O) y
Reconstruir para asegurarse de que
xunit.runner
termina en el directorio de salidaCerrar Test Explorer <- este fue el bit que faltaba para mí
Vuelva a abrir el Explorador de pruebas (Alt-S, W, T)
Ejecutar todas las pruebas (Ctrl R, A)
fuente
%TEMP%\VisualStudioTestExplorerExtensions
y reiniciar VS finalmente funcionó!Tuve que cambiar la configuración de prueba después de cambiar la CPU de proyectos de prueba a x64. Luego, las pruebas se detectaron nuevamente.
fuente
Ninguna de las soluciones anteriores funcionó para mí (dotnetcore 1.1, VS2017). Esto es lo que lo solucionó:
Microsoft.TestPlatform.TestHost
Microsoft.NET.Test.Sdk
Esos son adicionales a estos paquetes que instalé antes:
fuente
TestPlatform.TestHost
solo se necesita al migrar de VS 2017 a VS 2019.Instalar
xunit.runner.visualstudio
paquete para el proyecto de pruebafuente
Sigue estos pasos:
MsTest.TestAdapter
yMsTest.TestFramework
dll's
desdenugget package manager
.fuente
%TEMP%\VisualStudioTestExplorerExtensions
y todavía a veces tenía que ejecutar las pruebas desde la consola.He estado luchando con esto toda la tarde mientras trabajaba con un proyecto ASP Core y xUnit 2.2.0. La solución para mí fue agregar una referencia a
Microsoft.DotNet.InternalAbstractions
Descubrí esto al intentar ejecutar el proyecto de prueba manualmente con el
dotnet test
que falló pero informó queInternalAbstractions
faltaba. No vi este error en la ventana de salida de prueba cuando falló el descubrimiento automático. La única información que vi en la ventana de descubrimiento fue un código de retorno, que no significaba nada para mí en ese momento, pero en retrospectiva probablemente indicaba un error.fuente
Me ha sucedido un par de veces: cuando limpio el proyecto y lo construyo de nuevo, tiende a estar bien.
fuente
Asegúrese de que su clase de prueba sea pública .
fuente
La razón en mi caso fue que la compilación de destino no era la misma entre el depurador del proyecto y el corredor de prueba. Para unificar esos elementos:
Después de que sean idénticos, reconstruya su solución y luego le aparecerán métodos de prueba.
fuente
Después de pasar 2 días ... nada de lo anterior funcionó para mí. La única "solución" fue: Ir a las propiedades del proyecto -> Crear pestaña. Luego haga clic en el botón Avanzado en la esquina inferior derecha del panel. Cambie "Información de depuración:" a "completo" y haga clic en Aceptar.
Aquí están las capturas de pantalla:
fuente
Estoy usando xUnit 2.2.0.
Mi problema fue que mi solución no pudo encontrar ciertos dlls y
app.config
intentaba resolverlos. El error no aparecía en la ventana de salida de prueba en Visual Studio.Pude identificar el error cuando instalé
xunit.runner.console
e intenté ejecutar las pruebas a través de la línea de comandos.Cómo ejecutar pruebas de xunit en CLI .
fuente
Puedo proporcionar una solución para un caso extremo que encontré hace unos días. Sin embargo, no va a ser la solución que se ajuste a todos los escenarios descritos anteriormente, para el caso límite lo resolví.
Tuve el mismo problema con VS 2017 más reciente (versión 15.5.7) y XUnit 2.3.1. Se instaló el paquete xunit.runner.visualstudio, sin embargo, las pruebas no aparecieron en el explorador de pruebas incorporado de VisualStudio.
Estaba trabajando en un proyecto heredado dirigido a .NET Framework 4.5. Sin embargo, comenzando con la versión 2.2. XUnit no es compatible con marcos .NET inferiores a 4.5.2 (consulte las Notas de la versión - XUnit 2.2: 19 de febrero de 2017
Cambiar el marco de destino del proyecto de prueba a una versión> = 4.5.2 funcionó para mí. No tiene que cambiar la versión del proyecto que está probando, se trata solo del proyecto de prueba en sí.
fuente
Tuve el mismo problema con Visual Studio 2019. Acabo de instalar los siguientes paquetes NuGet y el problema se resolvió.
1) xUnit
2) xunit.runner.visualstudio
3) Microsoft.TestPlatform.TestHost
4) Microsoft.NET.Test.Sdk
fuente
Esto también puede deberse a que la casilla de verificación de compilación no está marcada para el proyecto de plataforma actual en la configuración de compilación. Haga clic en Construir | Administrador de configuración, luego asegúrese de que los proyectos de prueba tengan una marca en la columna de compilación para la plataforma que está utilizando (por ejemplo, 'x86').
Esta fue definitivamente la solución que funcionó para mí.
fuente
Asegúrese de no haber escrito sus pruebas unitarias en una biblioteca de clases .NET Standard 2.0. El visualstudio runner no admite la ejecución de pruebas en bibliotecas de clase netstandard2.0 en el momento de escribir este artículo.
Verifique aquí la matriz de compatibilidad de Test Runner:
https://xunit.github.io/#runners
fuente
Se encontró con un problema similar con VS no descubriendo métodos de prueba. En mi caso, tenía la palabra clave estática con el método, que eliminé y funcionó.
fuente
házmelo saber, gracias
fuente
En mi caso, tenía 2 proyectos de prueba diferentes en la solución. Las pruebas del Proyecto 1 se pudieron encontrar, pero las pruebas del Proyecto 2 no. Descubrí que primero al descargar la prueba del Proyecto 1, luego al cerrar VS> borrar mis archivos temporales> volver a abrir la solución> reconstruir, permití que VS descubriera mis pruebas del Proyecto 2.
Supongo que algo debe estar en conflicto entre los dos proyectos de prueba y esta fue la forma más rápida de ponerme en funcionamiento en unos minutos. Los problemas se pueden resolver más tarde :).
fuente
Sufrí de este problema durante mucho tiempo.
Tenía alrededor de 100 proyectos de diferentes versiones que se implementaron en diferentes servidores.
Actualizar xunit de 2.2.0 a 2.3.1 no fue una solución porque la compilación fallaba en 2.3.1.
Luego acabo de actualizar xunit.runner.visualstudio a 2.3.1 y todo comenzó a funcionar bien. He usado este comando en mi consola del administrador de paquetes para actualizar mi paquete xunit.runner.visualstudio
fuente
El culpable más común para mí ha sido Visual Studio tratando de ejecutar las pruebas usando una arquitectura diferente a la biblioteca que está probando. Lamentablemente, hay varios lugares donde parece que esto puede salir mal.
En VS 2017, intente crear un archivo de Configuración de ejecución, por ejemplo,
Default.runsettings
en su proyecto de prueba. Si su lib principal es x64, el contenido debe ser:Luego elija este archivo de Prueba -> Configuración de prueba -> Seleccionar archivo de configuración de prueba.
Luego, en Prueba -> Configuración de prueba, Arquitectura de procesador predeterminada, elija nuevamente la arquitectura correcta.
Asegúrese de limpiar y construir la solución completa. Es posible que deba cerrar y volver a abrir la ventana Explorador de prueba. Busque cualquier error adicional en la ventana Salida -> Prueba, para obtener más pistas sobre tipos de arquitectura incorrectos.
Para su información, puede encontrar entradas adicionales de Configuración de prueba aquí .
fuente
Hay otra razón que puede hacer que Test Explorer no muestre ninguna prueba, y tiene que ver con el nuevo
.pdb
formato de archivo portátil introducido con Visual Studio 2017 / para .NET Core que puede romper algunas herramientas de VS. (Antecedentes: consulte el informe de error "Mono.Cecil causa OutOfMemoryException con los nuevos PDB de .csproj" ).¿No se encuentran sus pruebas debido al nuevo
.pdb
formato portátil (símbolos de depuración)?Si ve resultados como los siguientes (posiblemente repetidos una vez para cada una de sus pruebas), entonces tiene el problema descrito en esta respuesta:
En caso afirmativo, haga esto para resolver el problema:
none
,pdb-only
ofull
, pero NOportable
. Es esta última configuración la que hace que no se encuentren las pruebas..pdb
archivos antes de reconstruir. Ahora tus pruebas deberían estar de vuelta.fuente
Me sucedió cuando hice mis primeros intentos de caminar con IntelliTest en VS 2017.
A veces, cuando IntelliTest crea automáticamente el proyecto de prueba, la referencia del ensamblaje a
Microsoft.ExtendedReflection
( ... \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ Pex \ Microsoft.ExtendedReflection. dll ) no se encuentra. Cuando se agrega, las pruebas generadas se mostrarán en el explorador de pruebas después de la compilación.fuente
Descargo de responsabilidad: no se trata de xunit con Visual Studio 2015, sino de Visual Studio 2017 con una aplicación de prueba de unidad UWP (MSTest). Llegué a este hilo buscando lo mismo, así que tal vez alguien más haga lo mismo :)
La solución para mí fue actualizar los paquetes nuget para MSTest.TestAdapter y MSTest.TestFramework. Parece que cuando crea una aplicación de prueba unitaria para UWP no obtiene automáticamente las últimas versiones.
fuente
Mi problema se resolvió instalando el nuget xunit.runner.visualstudio
fuente
En mi caso, tengo varios proyectos de prueba en la misma solución, y solo uno de los proyectos no mostraba el "Explorador de pruebas"
Fui al "Gestionar paquete Nuget para la solución" haciendo clic derecho en la solución.
Noté que debajo de la pestaña "Consolidar" había algunos paquetes nuget de "Prueba" que no estaban sincronizados entre los proyectos. Hice clic en "Instalar" y aparecieron mis pruebas faltantes.
fuente
Intenté la mayoría de las sugerencias anteriores y nada funcionó. En mi caso, estoy en un equipo y aparecían pruebas para otros desarrolladores para la misma solución. Entonces, intenté eliminar mi carpeta .vs, pero tampoco tuve suerte.
Terminé eliminando mi carpeta local por completo y volviendo a clonar el repositorio. Eso lo resolvió para mí.
fuente
Aquí está la solución que funcionó para nosotros. No es el mejor, pero quizás uno pueda beneficiarse.
Antecedentes:
En Build veríamos este mensaje:
Solución (temporal):
Ahora se muestran las pruebas.
fuente
xUnit v2 tests
el título.También verifique si hay un archivo app.config completamente vacío (completamente en blanco sin absolutamente ningún marcado) dentro del proyecto de prueba. Este fue el culpable en mi caso.
fuente
En mi caso, creé una nueva "Configuración de la solución" como se muestra en la imagen. Entonces, cuando selecciono mi personalizado como "Prod", no reconoce TestMehods por alguna razón. Cambiar de nuevo a "Depurar" resuelve el problema
fuente
No sé si algunos de ustedes también usan JustMock, pero tuve que deshabilitar el generador de perfiles en VS 2017 para que funcione la detección de pruebas.
fuente