Tengo algunas pruebas que usan el incorporado Microsoft.VisualStudio.TestTools.UnitTesting
, pero no puedo hacer que se ejecuten.
Estoy usando Visual Studio 2012 ultimate.
Tengo una solución de dos proyectos; Uno tiene pruebas, using Microsoft.VisualStudio.TestTools.UnitTesting
, [TestClass]
antes de la clase, [TestMethod]
antes de que los métodos de prueba y de referencia Microsoft.VisualStudio.QualityTools.UnitTestFramework
(versión 10.0.0.0, la versión de tiempo de ejecución v2.0.50727). He intentado dot-net framework 3.5, 4 y 4.5 otros dan un error de reorientación.
He intentado construir la solución y el proyecto. El explorador de pruebas tiene el mensaje `Cree su solución para descubrir todas las pruebas disponibles. Haga clic en "ejecutar todo" para compilar, descubrir y ejecutar todas las pruebas en su solución.
Entonces, la pregunta es: ¿cómo puedo obtener un estudio visual para encontrar las pruebas?
También he tratado de seguir esto: http://msdn.microsoft.com/en-US/library/ms379625%28v=VS.80%29.aspx pero sin éxito: me quedo atascado en la sección de inicio, cuando se me pide Haga clic derecho y seleccione create tests
. No existe create tests
.
Tengo esta prueba (se compila, pero no aparece en el explorador de prueba):
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace tests {
[TestClass]
public class SimpleTest {
[TestMethod]
public void Test() {
Assert.AreEqual("a","a", "same");
}
}
}
Ahora he descubierto (vea la respuesta eliminada a continuación) que se debe a que está en un disco compartido, pero todavía no sé cómo solucionarlo. (algo sobre la configuración de seguridad tal vez).
fuente
Respuestas:
Tuve los mismos síntomas, pero en diferentes circunstancias.
Tuve que agregar un paso adicional a la solución de Peter Lamberg: limpiar su solución / proyecto.
El objetivo de mi proyecto unittest es x64. Cuando creé el proyecto, originalmente estaba dirigido a x86.
Después de cambiar a x64, todas las pruebas de mi unidad desaparecieron.
Tuve que ir al Menú de prueba -> Configuración de prueba - Arquitectura de procesador predeterminada -> x64.
Todavía no aparecieron.
Hizo una construcción.
Aún no apareció.
Finalmente hice una limpieza
Luego aparecieron.
Encuentro que Clean Solution y Clean son bastante útiles para obtener las soluciones para jugar a la pelota cuando la configuración ha cambiado. A veces tengo que ir al extremo y eliminar las
obj
y losbin
directorios y hacer una reconstrucción.fuente
Agregue la palabra clave public a su definición de clase. Su clase de prueba no está visible actualmente fuera de su propio ensamblado.
fuente
[TestMethod]
ser estático debido a una copia y pegado de otro código.[TestMethod]
está estático porque eso es lo queUserTest1.cs
tenía en el nuevo proyecto de prueba! También resolvió mi problema.static
delante de tu método. No sé por qué lo hago por costumbre tan a menudo.Esto a veces funciona.
Verifique que la arquitectura del procesador en el menú Prueba coincida con la que usa para crear la solución.
Prueba -> Configuración de prueba -> Arquitectura de procesador predeterminada -> x86 / x64
Como se mencionó en otras publicaciones, asegúrese de tener abierta la ventana Explorador de pruebas. Prueba -> Windows -> Explorador de prueba
Luego, la reconstrucción del proyecto con las pruebas debería hacer que las pruebas aparezcan en Test Explorer.
Editar: como Ourjamie señaló a continuación, hacer una compilación limpia también puede ayudar. Además de eso, aquí hay una cosa más que encontré:
La casilla de verificación "Compilar" no estaba marcada en Configuration Manager para un nuevo proyecto de prueba que había creado con la solución.
Vaya a Build -> Configuration Manager. Asegúrese de que su proyecto de prueba tenga la casilla de verificación de compilación marcada para todas las configuraciones de solución y plataformas de solución.
fuente
Tengo Visual Studio 2012 y no pude ver las pruebas en Test Explorer,
Así que instalé lo siguiente: Adaptador de prueba NUnit
¡Eso solucionó el problema para mí!
fuente
Install-Package NUnitTestAdapter
En mi experiencia reciente, todo lo anterior no funcionó. Mi método de prueba
no aparecía sino que se compilaba bien. Cuando eliminé la
async
palabra clave, la prueba apareció en el Explorador de pruebas. Esto es porqueasync void
es un método de "disparar y olvidar". ¡Realice el métodoasync Task
y obtendrá su prueba nuevamente!Además, no tener la configuración del proyecto Test establecida en "Build" también evitará que aparezcan las pruebas. Administrador de configuración> Verifique su prueba para compilar.
fuente
Dado que el proyecto está en una unidad compartida, como lo ha indicado el póster original. VS.NET necesita confiar en la ubicación de la red antes de cargar y ejecutar sus ensambles de prueba. Lee esta publicación de blog .
Para permitir que VS.NET cargue elementos de un recurso compartido de red, es necesario agregarlos (recursos compartidos) a ubicaciones confiables. Para agregar una ubicación a una lista de confianza completa, ejecute (obviamente, modifique según sea necesario para su entorno):
Para verificar o enumerar ubicaciones confiables existentes, ejecute:
fuente
CasPol.exe
se puede encontrar debajo%windir%\Microsoft.NET\Framework[64]\[version]
. Verifique que está configurando la política para la arquitectura adecuada. Fuente: msdn.microsoft.com/en-us/library/cb6t8dtz%28v=vs.100%29.aspxUn problema que he encontrado es que las pruebas no se encuentran en el Explorador de pruebas (no aparece nada) si la solución se ejecuta desde una unidad de red / ubicación de red / unidad compartida
Puede solucionar esto agregando una variable de entorno.
COMPLUS_LoadFromRemoteSources y establezca su valor en 1
fuente
Tuve el mismo problema ... En mi caso fue causado por un propiedad privada
TestContext
.Cambiarlo a lo siguiente ayudó:
Después de limpiar y construir la solución (como se describe en la respuesta de @Ourjamie), los métodos de prueba en la clase de prueba afectada estaban disponibles en el Explorador de pruebas.
fuente
Me encontré con el mismo problema al intentar abrir la solución en un recurso compartido de red. Test Explorer no detectaría ninguna prueba unitaria en este caso. La solución resulta ser:
Panel de control -> Opciones de Internet -> Pestaña "Seguridad" -> Haga clic en "Intranet" y agregue la dirección IP del servidor o el nombre de host que contiene el recurso compartido de red a la lista "Sitios".
Después de hacer esto, volví a compilar la solución y ahora aparecieron las pruebas. Esto debería ser bastante similar a la respuesta hecha por @BigT.
fuente
Lista de verificación rápida para resolver algunos problemas comunes de prueba. Asegúrate de eso:
public
[TestClass]
atributo[TestMethod]
atributoSi esto no ayuda, intente limpiar, reconstruir la solución y reiniciar Visual Studio.
fuente
UTA001: TestClass attribute defined on non-public class
Estaba recibiendo el error:
"Failed to initialize client proxy: could not connect to vstest.discoveryengine.exe."
Intente ejecutar Visual Studio como administrador. Eso funcionó para mí.
Hay otra publicación de Stack Overflow que discute este error , y la misma solución funciona para ellos. La pregunta sigue siendo por qué esto funciona.
fuente
A veces tengo los mismos síntomas.
Lo que hice fue:
1. Cerré la ventana del Explorador de pruebas
2. Limpié la solución
3. Reconstruí la solución
4. Reinicié la ventana del Explorador de pruebas desde Prueba -> Windows -> Explorador de pruebas.
Y obtuve mi prueba en la ventana Test Explorer.
fuente
Desde la barra de menú en la parte superior ...
Prueba -> Ejecutar -> Todas las pruebas
También puede ver todas las pruebas desde el Explorador de pruebas (Prueba -> Windows -> Explorador de pruebas)
Además, con VS 2012, si se pierde algo, intente buscarlo utilizando la barra de inicio rápido en la parte superior derecha (Ctrl + Q) "Prueba"
Espero que esto ayude.
fuente
Microsoft.VisualStudio.TestTools.UnitTesting
, ¿alguna idea de qué más estoy haciendo mal?Encontré que la mejor manera de solucionar este problema es crear un archivo .proj msbuild y agregar sus proyectos de prueba de unidad que tiene un problema en este archivo y ejecutar las pruebas usando la versión de línea de comando de mstest. Encontré un pequeño problema de configuración en mi app.config que solo apareció cuando ejecuté las pruebas desde mstest; de lo contrario, el proyecto de prueba se compiló perfectamente. También encontrará problemas de referencia indirecta con este método. Una vez que pueda ejecutar la prueba de la Unidad desde la línea de comando usando mstest, puede hacer una solución limpia, reconstruir la solución y su prueba debería ser descubierta correctamente.
fuente
En mi caso fue otra cosa. Instalé un paquete y luego lo desinstalé y reinstalé una versión anterior. Eso dejó un
configuration/runtime/asssemblyBinding/dependencyIdentity
redireccionamiento residual en mi app.config. Tuve que corregirlo. Lo descubrí mirando laOutput
ventana y seleccionando "Tests
" en el menú desplegable. El mensaje de error estaba allí. Esto fue un dolor ... espero que ayude a alguien más.fuente
Esto es más para ayudar a las personas que terminan aquí en lugar de responder a la pregunta del OP:
Intenta cerrar y volver a abrir el estudio visual, fue el truco para mí.
Espero que esto ayude a alguien.
fuente
Sé que esta es una pregunta anterior, pero con Visual Studio 2015 estaba teniendo problemas en los que no se reconocía mi clase de prueba recién creada. Probé todo. Lo que terminó siendo el problema fue que la clase no estaba "incluida en el proyecto". Solo encontré esto al reiniciar Visual Studio y notar que mi clase de prueba no estaba allí. Al mostrar archivos ocultos, lo vi, así como otras clases que había escrito, no estaban incluidas. Espero que ayude
fuente
Experimenté este problema muchas veces cuando trato de construir la solución en una PC diferente.
Estoy usando NUnit y Specflow también. Por defecto, mi proyecto de prueba apunta a X86, pero tengo que cambiar esto a X64. Los pasos son 1. Menú de prueba -> Configuración de prueba - Arquitectura de procesador predeterminada -> x64. 2. Clean Build 3. Build 4. Si todavía no aparecieron las pruebas. 5. Vaya a Herramientas Extensiones y actualizaciones, luego instale las bibliotecas NUnit y Specflow 6. Clean Build 7. Build
Entonces, por lo general, la prueba aparecerá en el Editor de pruebas.
fuente
He actualizado VS 2012 a la última actualización. es decir, la actualización de Visual Studio 3. Eso solucionó el problema para mí.
fuente
Para mí, la solución fue un poco menos complicada.
Acababa de traer una solución existente a mi máquina (clonada desde gitHub) y no rastreamos los archivos .cs generados automáticamente que creó Visual Studio. (Para cada archivo de características hay un archivo .cs con el mismo nombre)
Abrir la solución sin tener los archivos .cs asociados en realidad me permite navegar a los métodos enlazados, por lo que parecía que el flujo de especificaciones estaba conectado correctamente, pero no pude ver los nombres de las pruebas en el Explorador de pruebas.
Para este problema, simplemente excluir los archivos de características del proyecto y luego volver a incluirlos, forzó a VS a regenerar estos archivos de código subyacente generados automáticamente.
Después de eso, pude ver las pruebas en el explorador de pruebas.
fuente
Tuve este problema al actualizar mi solución de Microsoft Visual Studio 2012 Express para Web a Microsoft Visual Studio 2013.
Había creado un proyecto de pruebas unitarias en 2012, y después de abrir en 2013, el proyecto de pruebas unitarias no mostraba ninguna prueba en el explorador de pruebas. Cada vez que intentaba ejecutar o depurar pruebas fallaba, diciendo lo siguiente en la ventana de salida:
También me di cuenta de que al depurar las pruebas, estaba lanzando una instancia de Visual Studio 2012. Esto me dio una idea del hecho de que el proyecto de Pruebas unitarias todavía hacía referencia a 2012. Al mirar la referencia del proyecto de prueba, me di cuenta de que estaba apuntando al Microsoft Visual incorrecto Studio Unit Test Framework DLL para esta versión de Visual Studio:
Cambié el número de versión de 11.0 a 12.0:
Reconstruí todo y esto solucionó el problema: todas las pruebas se encontraron en el Explorador de pruebas y ahora todas las pruebas se encuentran y se ejecutan perfectamente.
fuente
Verifique que su proyecto de prueba no esté configurado para Retrasar firmar solo en las propiedades de su proyecto -> Firma. Si es así, anule la selección y realice una reconstrucción limpia.
fuente
sn -Vr *,<public key token>
como administrador en el símbolo del sistema del desarrollador VSLlegué al mismo problema al intentar abrir la solución en un recurso compartido de red en VS2013 Ultimate.
He corregido el problema activando
Panel de control -> Opciones de Internet -> Pestaña "Seguridad" -> Haga clic en "Intranet local", haga clic en sitios y asegúrese de que "Marcar automáticamente la red de intranet" esté marcado.
fuente
Estas son todas excelentes respuestas, pero hay una razón más que conozco; Me encontré con eso. En una de mis pruebas recibí un mensaje de ReSharper que indicaba que tenía una clase privada no utilizada. Era una clase que voy a usar en una próxima prueba. En realidad, esto hizo que todas mis pruebas desaparecieran.
fuente
Verifique los ensambles referenciados para cualquier ensamblaje que pueda tener "Copiar local" establecido en "Falso".
Si su proyecto de prueba se construye en su propia carpeta (bin / Debug, por ejemplo) y el proyecto depende de otro ensamblaje y uno de esos ensamblajes en la lista de Referencias está marcado Copiar Local = "Falso", el ensamblaje no se puede cargar debido a la falta de dependencias y sus pruebas no se cargarán después de una compilación.
fuente
Parece que NUnit Framework 2.6.4 no funciona bien con NUnit Test Adapter. En el sitio web menciona que el adaptador de prueba solo funcionará con NUnit Framework 2.6.3.
Este era mi problema: 1. Había descargado NUnit y NUnit Test Adapter por separado a través de Nuget en el VS2012. De alguna manera, NUnit se actualizó a 2.6.4 De repente, no vi mis casos de prueba en la lista.
Reparar:
Desinstale el adaptador Nuget y Nuget Test
a. Vaya a Herramientas> Nuget> Administrador de paquetes de Nuget> Administrar paquete de Nuget para la solución
si. Lista de paquetes instalados
C. Haga clic en administrar
re. Desmarca tus proyectos
Instale el adaptador de prueba NUnit, incluido el marco NUnit 2.6.3
Solución limpia / reconstruida
Prueba abierta> Explorador de prueba> Ejecutar todo
Veo todos los casos de prueba
Espero que esto ayude
fuente
Ninguna de las soluciones aquí me ayudó. Las pruebas no se descubrirían para una solución, mientras que otra solución que hace referencia a los mismos proyectos funcionó bien. Finalmente resolví esto eliminando el archivo solutionname.v12.suo.
fuente
Tuve el mismo problema, pero un poco diferente.
Estaba usando Visual Studio 2012. Por alguna razón, solo se ejecutaban las pruebas del archivo generado inicial. Pero las pruebas en otro archivo no se estaban ejecutando. Probé diferentes soluciones publicadas aquí, no funcionó.
Finalmente descubrí que tenía un método privado en la clase de prueba, que era el primer método dentro de la clase. Acabo de mover el método privado después de un método de prueba; así que ahora, un método con
[TestMethod]
atributo es el primero método dentro de la clase. Extraño, pero ahora funciona.Espero que esto ayude a alguien algún día.
fuente
A las pruebas no les gustan los métodos asíncronos. P.ej:
Después de hacer esto:
Se vio la prueba.
fuente
[Test] public void XamarinExampleTest() { // This workaround is necessary on Xamarin, // which doesn't support async unit test methods. Task.Run(async () => { // Actual test code here. }).GetAwaiter().GetResult(); }
Agregando mi respuesta ya que este es el mejor resultado en Google para esto.
Estoy usando Visual Studio 2015 y (sin saberlo, acabo de ejecutar
Install-Package NUnit
) instalé el paquete NUnit3 NuGet en mi proyecto de prueba. Ya tenía instalada la extensión del adaptador de prueba NUnit, y mis pruebas aún no aparecían.La instalación del adaptador de prueba NUnit3 a través de Herramientas> Extensiones y actualizaciones me arregló esto.
fuente