Tengo una solución simple en Visual Studio 2013 que está compuesta por un proyecto web, un proyecto de biblioteca y un proyecto de prueba de unidad. Cuando abro la solución e intento ejecutar las pruebas unitarias, Visual Studio no las descubre. Para ejecutar las pruebas, intento ir al menú y elegir Prueba -> Ejecutar -> Ejecutar todas las pruebas o abriendo la ventana del explorador de pruebas. Según los métodos, Visual Studio no descubre ninguna prueba en la solución.
Creando primero un proyecto simple de pruebas unitarias e intentando ejecutar la prueba, Visual Studio sabe descubrir la prueba y puedo ejecutarla. Luego, si abro mi solución anterior, Visual Studio ahora descubre todas las pruebas. Intento guardar mi solución, pero al cerrarla y volver a abrirla, sin crear primero un proyecto de prueba unitaria, el estudio visual no vuelve a encontrar las pruebas. Este es un comportamiento muy extraño que no sé por qué sucede esto.
Solía trabajar solo en este proyecto que usaba el control de fuente git integrado con la base del equipo del estudio visual. El problema de Visual Studio no descubre que las pruebas unitarias comienzan cuando un nuevo elemento llegó al proyecto y cuando necesito recrear la solución a través del control de fuente en línea. Antes de esto, todas las pruebas siempre fueron descubiertas por Visual Studio.
Para la creación de las pruebas unitarias, uso el dll Microsoft.VisualStudio.QualityTools.UnitTestFramework. Mi versión de Visual Studio es: Microsoft Visual Studio Express 2013 para Web Versión 12.0.30723.00 Actualización 3. Mi versión de .net framework es 4.5.50938.
Todas mis pruebas son así:
[TestClass]
public class Service1Test
{
[TestMethod]
public void Test1()
{
Assert.IsTrue(True);
}
}
fuente
Respuestas:
Algunas cosas que he notado que tengo que hacer de vez en cuando para que las pruebas se muestren correctamente.
Si su solución está en una unidad protegida a la que necesita acceso de administrador para leer / escribir, a veces solo aparece una parte de las pruebas. Definitivamente ejecute VS como administrador en ese caso.
Si su solución es de 64 bits, asegúrese de que Prueba> Configuración de prueba> Arquitectura de procesador predeterminada esté establecida en x64. A veces se establece en x86. Configúrelo en x64, luego reconstruya.
A veces, simplemente reiniciar Visual Studio hace el truco porque el explorador de prueba se iniciará nuevamente.
No olvides construir el proyecto / solución de prueba. (Si desea que se cree con el resto de los proyectos, haga clic con el botón derecho en su solución> Propiedades> Propiedades de configuración> Configuración> marque la casilla "Compilar" para su proyecto de prueba)
Asegúrese de que las pruebas estén en una
public
sección de su clase de pruebafuente
Si usa NUnit, asegúrese de descargar primero el Adaptador NUnit.
Vaya a Herramientas → Extensiones y actualizaciones ... → En línea → busque "Adaptador de prueba NUnit".
fuente
Asegúrese de que su clase de prueba sea
public
para que pueda encontrarla. Y si hace referencia a otra clase, asegúrese de lo mismo.Además, a veces si no tiene Afirmaciones o no está decorando la prueba con a
[TestMethod]
, es posible que no se reconozca una prueba.2 cosas más: 1) Las pruebas unitarias asíncronas son divertidas en el mejor de los casos, y ninguna en el peor. Eche un vistazo a este artículo de Stephen Cleary y manténgase allí si le interesa.
2) Si usa NUnit y se encuentra con los mismos problemas, tenga en cuenta que es
[TestCase]
para Nunit, en lugar de[TestMethod]
Habiendo dicho lo anterior, aquí hay un artículo que publiqué sobre el proyecto de código, con ambos
MSTest
yNUnit
, en caso de que quieras darle una vuelta y asegurarte de que no te pierdas nada.fuente
using Microsoft.VisualStudio.TestTools.UnitTesting;
Tuve el mismo problema pero ninguna de las otras soluciones funcionó. Resulta que estaba usando el marco NUnit 3 con el adaptador 2.
Si está utilizando NUnit 3, vaya a Extensiones y actualizaciones e instale el Adaptador de prueba NUnit3.
fuente
Tengo este problema de vez en cuando. Lo que funciona para mí es cerrar Visual Studio e ir a la carpeta:
y eliminarlo contenido.
Una vez que abra Visual Studio y cargue su proyecto nuevamente, el Explorador de pruebas debería contener sus pruebas
fuente
%LocalAppData%\Microsoft\VisualStudio\16.0_03b7a93c\ComponentModelCache
Los usuarios de XUnit pueden notar que la ventana Explorador de pruebas ya no enumera ninguna prueba. Para que las pruebas sean reconocibles nuevamente, pruebe este consejo importante , resaltado a continuación.
fuente
Para futuros googlers tuve un escenario raro que causó esto.
En mi clase de prueba base tenía una propiedad llamada TestContext. Esto interfirió con la propiedad TestContext reservada de MSTest causando que todas mis pruebas estuvieran ocultas de VS / Resharper excepto una (que no se heredaba de la base).
fuente
public
.para mí estaba cambiando las 'configuraciones de solución' a Debug (en lugar de Release).
fuente
Mi problema fue porque mi método de prueba de unidad no era nulo y estaba recibiendo parámetros.
fuente
He descubierto que los métodos de prueba de unidad marcados como
async void
no son descubiertos por VS Test Explorer. Esto parece deberse a que VS no tendría forma de esperar a que termine una prueba y decidir si tuvo éxito o no. Si realmente necesita tener un método de prueba para ejecutarse de forma asíncrona, haga que devuelva una tarea comoasync Task
. Descubrí que esto solucionó el problema para mí.fuente
Intente compilar todos los proyectos como MSIL (cualquier CPU) en lugar de x86 / x64. Trabajó para mí extrañamente
fuente
Si bien la solución de AndyG funciona, una solución más duradera podría ser establecer la variable de entorno PreferredToolArchitecture en "x64", ya sea mediante:
Cómo hacer que Visual Studio use la cadena de herramientas nativa amd64
o por:
fuente
Estaba enfrentando el mismo problema y he recordado, nuevamente (esta situación sucedió antes), que seleccionar "Plataforma Mixta" en el menú de la plataforma de soluciones funciona, así como las otras respuestas.
fuente
Había logrado agregar el mío como
comenzó a funcionar una vez que eliminé la estática ...
fuente
Vaya al administrador de paquetes Nuget y descargue Nunit Adapter de la siguiente manera.
fuente
vaya al menú del proyecto> Configuration Manager, verifique que la plataforma de su proyecto de prueba coincida con el resto del proyecto y verifique la construcción y luego la reconstrucción.
fuente
Me encontré con esto y no vi un caso similar que fuera similar al mío.
En el
.csproj
archivo de mi proyecto de prueba, la privacidad de referencia de NUnit se estableció enFalse
:Después de que me puse
<Private>
aTrue
trabajar, funcionó.fuente
Solo necesita instalar este paquete solamente:
NUnit TestAdapter
fuente
Para que las pruebas se mostraran en la ventana del Explorador de pruebas, tuve que instalar NUnit3 Test Adapter 3.0, que no estaba disponible en Package Manager.
Descargado de https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d
fuente
Tuve exactamente el mismo problema.
Fue debido a una versión incompatible de NUnit que había agregado a mi proyecto (3.2.0) y al Adaptador de prueba que había instalado (2.0.0).
Para solucionarlo, use "Herramientas> Extensiones y actualizaciones" y busque el Adaptador de prueba NUnit3, descubrió mis pruebas después de eso.
Salud
fuente
Digamos, por el bien de los argumentos, que necesita usar la arquitectura X64 en su proyecto de prueba para que las dependencias se construyan correctamente (como en mi caso). Es posible que deba modificar su arquitectura de procesador predeterminada en el menú Prueba - Configuración de prueba . Establecer esto en X64 permitió a mi explorador de pruebas encontrar mis pruebas usando Microsoft.VisualStudio.TestTools.UnitTesting.
fuente
Perdón por agregar a la larga lista, pero tuve un problema completamente diferente. Primero, me gustaría mencionar que descubrí mi problema al hacer clic en 'Ejecutar todo' en el Explorador de pruebas y luego mirar la ventana de salida de compilación en Visual Studio. Tienes que mirarlo activamente, ya que luego desaparece el mensaje.
En cuanto al problema, parece que durante el escaneo de las pruebas, la DLL se carga y se enumeran sus tipos de prueba. Esto hace que se carguen las referencias y si ocurre alguna falla durante este proceso, las pruebas no se mostrarán en el explorador. Tuve dos problemas que impiden que la DLL de prueba se cargue correctamente:
fuente
Si carga una solución de Visual Studio (VS 2015 Community en mi caso) desde un recurso compartido de red o el directorio Mis documentos que es parte de un recurso compartido , se encontrará con este problema. Lo resolví moviendo la solución y sus proyectos subyacentes a una carpeta local.
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
Me encontré con el mismo problema. E investigó y descubrió que los dll no se compilaron y se colocaron en la carpeta correcta. tan pronto como cambié mi configuración, aparecieron. - las opciones de compilación de Proyectos, ¿qué carpeta se debe usar? - la configuración de compilación de la entrada del menú de compilación, deben verificarse.
Eso me lo arregló.
fuente
Para Visual Studio 2013.5, la limpieza del directorio \ TestResults en la solución ayudó. Visual Studio corrompió el archivo mdf en el que almacena las pruebas descubiertas, evitando así el descubrimiento de pruebas unitarias.
fuente
Asegúrese de que todos sus proyectos se ejecuten con la misma configuración. En Propiedades de su proyecto => Depurar => Plataforma en la lista desplegable, elija la plataforma adecuada (para mí fue "Cualquier CPU") según lo determinado en sus otros proyectos.
fuente
fuente
Tuve el mismo problema; Las pruebas de repente dejaron de ser descubiertas.
El adaptador de prueba Nunit se había deshabilitado de alguna manera. Al hacer clic en habilitar en el administrador de extensiones lo arregló para mí.
fuente
Tuve el mismo problema hasta que me di cuenta de que cometí un error de cortar / pegar y lo dejé
[Test Method]
antes de la prueba.fuente