¿Dónde encontrar dll que falta "Microsoft.VisualStudio.TestTools.UnitTesting"?


131

Recibo el siguiente error en mi proyecto de estudio visual C #:

El tipo o nombre de espacio de nombres 'VisualStudio' no existe en el espacio de nombres 'Microsoft' (¿falta una referencia de ensamblado?)

También intenté encontrar el archivo microsoft.dll pero no pude obtener ninguna referencia. ¿Estoy buscando la DLL incorrecta?

using Microsoft.VisualStudio.TestTools.UnitTesting;  
using Kya.MsFx.Services.Swiper;

namespace Kya.MsFx.Devices.Swiper.Test
{
[TestClass]
public class SwiperWindowTest
{

    private SwiperWebServiceHost m_SwiperWS = null;
    /// <summary>
    ///     start web service on a separate thread, so tests 
    ///     can be executed withut blocking the application thread
    /// </summary>
    [ClassInitialize]
    public void SetupSwiperTests() {

        m_SwiperWS = SwiperWebServiceHost.StartService();

    }

    /// <summary>
    /// Stop service started during class initialize and kill the thread
    /// </summary>
    [ClassCleanup]
    public void CleanupSwiperTests() {
        m_SwiperWS.Stop();
    }


    /// <summary>
    ///   simulate init, swipe, clear operations
    /// </summary>
    [TestMethod]
    public void TestSwiperService()
    {
        MessageBox.Show("test");
    }
}
}

1
¿Sigue obteniendo exactamente el mismo error después de agregar la referencia de ensamblado Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Respuestas:


144

Tienes que agregar referencia a

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Se puede encontrar en el directorio "C: \ Archivos de programa \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" (para VS2010 profesional o superior; .NET Framework 4.0).

o haga clic derecho en su proyecto y seleccione: Agregar referencia ...> .NET: o haga clic en Agregar referencia ...> .NET:


2
¿Por qué se aceptó esto? Los comentarios parecen indicar que no fue útil. ¿Podría alguien dar más detalles?
sirdank

@sirdank Te das cuenta de que nadie más que el OP puede aceptar una respuesta como la solución, ¿no? Si no fuera útil para el OP, no lo habría aceptado.
Agent007

44
@ Agent007 Lo sé. Sin embargo, el OP que deja un comentario que indica que no funcionó sugiere (al menos para mí) que se necesita hacer algo más. Después de descubrir qué más se necesitaba hacer, no dejar un comentario describiendo tal parece inútil.
sirdank

66
Acabo de tener este problema, y ​​esta respuesta fue la solución. ¿Alguien tiene alguna idea de por qué este es el caso? ¿Por qué es el espacio de nombres Microsoft.VisualStudio.TestTools.UnitTestingy el ensamblado Microsoft.VisualStudio.QualityTools.UnitTestFramework? ¿Por qué no podrían nombrarlos a ambos de la misma manera?
Alan Thomas

Una forma en que me tropecé fue que cuando las compilaciones de Team Build se verán en una carpeta diferente dependiendo de la versión. Microsoft Visual Studio 10.0 para VS 2010, Microsoft Visual Studio 12.0 para VS 2013, Microsoft Visual Studio 14.0 para VS 2015.
Ryan Gates

67

Sé que esto es viejo, esto es lo que surgió en mi búsqueda de Google. Necesitaba hacer referencia a estos paquetes en NuGet:

ingrese la descripción de la imagen aquí


En mi caso (VS2019) necesitaba actualizar estos paquetes y luego solucionó el problema. ¡Salud!
RJFalconer

Esto funciona perfectamente para mi. Uso Rider y la aplicación se creó originalmente en VS. Gracias por poner esto aquí.
Yatin

17

La DLL que está buscando que contiene ese espacio de nombres es

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Tenga en cuenta que las pruebas unitarias no se pueden usar en Visual Studio Express .


3
¿Me podría dar el enlace de descarga?
Amit Pal

@AmitPal ¿Qué edición de Visual Studio tienes? Debe incluirse con la mayoría de las ediciones.
Joachim Isaksson

visual studio 2010 y .net 4.0
Amit Pal

@AmitPal Vea mi respuesta a esta pregunta para la ruta DLL. Debe estar ahí.
Agente007

55
@AmitPal Visual Studio 2010 Express no tiene esa DLL y no se puede agregar para que las pruebas unitarias funcionen (tendrá que usar una herramienta de prueba de terceros como nUnit) Si está usando una versión profesional o superior, consulte la respuesta de agent007.
Joachim Isaksson

10

También hay un buen paquete nuget . Llevará el archivo dll a la carpeta de paquetes. Deberá agregar la referencia a la dll manualmente.

NOTA : Este paquete no es un paquete oficial de Microsoft.


1
El paquete nuget no se pudo instalar en el proyecto para .net 4.0 con VS2013. La única opción para la versión era 11.0.50727.1.
WebComer

1
¿Alguien puede decir si este nuget es realmente propiedad de Microsoft? Parece ser un nuget personal que contiene conjuntos de Microsoft
BozoJoe

9

Para resolver este problema, tuve que hacer lo siguiente:

  1. Inicie el instalador de Visual Studio con privilegios administrativos
  2. Si le solicita que instale actualizaciones para Visual Studio, hágalo antes de continuar
  3. Cuando se le solicite, haga clic en el botón para modificar la instalación existente
  4. Haga clic en la pestaña / encabezado "Componentes individuales" en la parte superior
  5. Desplácese hacia abajo a la sección "Depuración y prueba"
  6. Marque la casilla junto a "Herramientas de prueba de carga y rendimiento web"
  7. Haga clic en el botón Modificar en la esquina inferior derecha del cuadro de diálogo para instalar las DLL que faltan

Una vez que las DLL están instaladas, puede agregar referencias a ellas utilizando el método que Agent007 indicó en su respuesta.


1
"Herramientas de prueba de carga y rendimiento web" ya no aparece. ¿Qué recomendarías que seleccionemos en su lugar?
Shafiq Jetha

@ ShafiqJetha, todavía veo la opción para "Herramientas de prueba de carga y rendimiento web". Estoy usando Visual Studio Enterprise 2017 - 15.8.9. Qué versión estás usando? Parece que Microsoft ha cambiado ligeramente la interfaz del instalador desde que escribí la publicación anterior. Cuando inicio el instalador de Visual Studio (ejecutándolo como administrador), hago clic en el botón "Más" a la derecha de los botones "Actualizar" y "Iniciar", luego selecciono "Modificar", luego continúo con el paso 4 en la lista en mi post de arriba
S. Hooley

Estoy usando el instalador de Build Tools para Visual Studio 2017, así que eso podría explicarlo.
Shafiq Jetha

@ShafiqJetha, ¿qué terminaste usando?
Vin Shahrdar

@VinShahrdar Honestamente no puedo recordar; Esto fue hace mucho tiempo. Creo que hemos solucionado el problema quizás utilizando el paquete NuGet de otra persona para obtener las DLL necesarias. O tal vez guardamos la DLL en el repositorio. Sinceramente, no puedo recordar, lo siento.
Shafiq Jetha

8

Si está utilizando Visual Studio 2017 Community, la ubicación es:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\v2.0

La DLL que desea está ahí: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Aparentemente se encuentra en el C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\directorio de la versión Visual Studio 2010 Professional, pero tenga en cuenta que el10.0 cambiará para corresponder con el año de lanzamiento, es decir, VS 2013 era la versión 12.0, VS 2015 era la versión 14.0, VS 2017 es 15.0. (VS Express no es compatible y requeriría instalar el paquete NUnit NuGet, a través del Administrador de paquetes NuGet).

Vaya a Referencias , haga clic con el botón derecho, seleccione Agregar referencia, Examinar . Navegue a la ruta, luego haga doble clic en el archivo.

Luego, necesita una usingdeclaración en la parte superior de su clase de Prueba de Unidad:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Al examinar, significa el botón Examinar en la parte inferior, no la carpeta Examinar a la izquierda.
Alan Baljeu

@AlanBaljeu Muy cierto.
vapcguy

0

Es decir, para Visual Studio 2013, haría referencia a este ensamblado:

Microsoft.VisualStudio.Shell.14.0.dll

Puede encontrarlo, es decir, aquí:

C: \ Archivos de programa (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ BugAid Software \ BugAid \ 1.0

y no olvides implementar:

usando Microsoft.VisualStudio;


0

Si vino aquí porque su trabajo de compilación VSTS falla con el mensaje de error anterior. Asegúrese de estar utilizando al menos la versión 2. * de la tarea nuget para restaurar sus paquetes.


¿Sabes por qué se necesita la versión 2. *? Estamos en TFS 2017 y nos encontramos con este error.
DylanSp

Acabo de levantar el código de QA a UAT y ahora estoy probando las mismas pruebas unitarias, en la misma computadora, en la misma carpeta principal en prácticamente la misma solución. pero nooo ... No se encontró ninguna unidad de prueba de repente ... Estoy tan cansado del infierno de Microsofts Path que han creado en los últimos años.
Christian

0

Tengo este problema después de mover un proyecto y eliminar su carpeta de paquetes. Nuget mostró que MSTest.TestAdapter y MSTest.TestFramework v 1.3.2 estaban instalados. La solución parecía ser abrir VS como administrador y compilar Después de eso, pude volver a abrir y compilar sin tener privilegios de administrador.


0

Agregue una referencia al paquete NuGet "Microsoft.VisualStudio.QualityTools.UnitTestFramework" y debería compilarlo correctamente.


Estoy seguro de que las otras siete entradas que sugieren esta solución exacta no llegan a los lectores. La repetición es aún mejor cuando la repites.
Christian

0

Con Visual Studio 2019, ejecutando un proyecto .net core 3.1, necesitará instalar el último marco de prueba para resolver el error.

La forma más fácil de lograr esto es colocando el navegador sobre una anotación [Prueba] (subrayada en rojo) y seleccionando las soluciones sugeridas. Lo que se necesita es "buscar e instalar el último marco de prueba".


-4

Simplemente consulte esta URL y descargue y guarde los archivos dll requeridos en esta ubicación:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies

URL es: https://github.com/NN---/vssdk2013/find/master

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.