Dove trovare "Microsoft.VisualStudio.TestTools.UnitTesting" DLL mancante?


131

Ricevo il seguente errore nel mio progetto Visual Studio C #:

Il tipo o il nome dello spazio dei nomi "VisualStudio" non esiste nello spazio dei nomi "Microsoft" (manca un riferimento all'assembly?)

Ho anche provato a trovare il file microsoft.dll ma non ho trovato alcun riferimento. Sto cercando la DLL sbagliata?

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
Stai ancora ottenendo lo stesso errore esatto dopo aver aggiunto il riferimento all'assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson,

Risposte:


144

Devi aggiungere un riferimento a

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

È disponibile nella directory "C: \ Programmi \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" (per VS2010 professionale o superiore; .NET Framework 4.0).

oppure fai clic con il pulsante destro del mouse sul progetto e seleziona: Aggiungi riferimento ...> .NET: oppure fai clic su Aggiungi riferimento ...> .NET:


2
Perché è stato accettato? I commenti sembrano indicare che non è stato d'aiuto. Qualcuno potrebbe elaborare?
sirdank,

@sirdank Ti rendi conto che nessuno, tranne l'OP, può accettare una risposta come soluzione, vero? Se non fosse stato utile per l'OP, non l'avrebbe accettato.
Agent007,

4
@ Agent007 Lo so. Tuttavia, l'OP che lascia un commento indicante che non ha funzionato suggerisce (almeno per me) che bisogna fare qualcosa di più. Dopo aver capito cos'altro bisogna fare, non lasciare un commento che descriva tale aspetto sembra inutile.
sirdank,

6
Ho appena avuto questo problema e questa risposta è stata la soluzione. Qualcuno ha qualche idea sul perché questo è il caso? Perché lo spazio dei nomi Microsoft.VisualStudio.TestTools.UnitTestinge l'assembly lo sono Microsoft.VisualStudio.QualityTools.UnitTestFramework? Perché non potevano nominarli entrambi la stessa cosa?
Alan Thomas,

Un modo in cui sono stato inciampato è che quando Build di Team costruisce apparirà in una cartella diversa a seconda della versione. Microsoft Visual Studio 10.0 per VS 2010, Microsoft Visual Studio 12.0 per VS 2013, Microsoft Visual Studio 14.0 per VS 2015.
Ryan Gates

67

So che è vecchio, questo è ciò che è emerso dalla mia ricerca su Google. Avevo bisogno di fare riferimento a questi pacchetti su NuGet:

inserisci qui la descrizione dell'immagine


Nel mio caso (VS2019) avevo bisogno di aggiornare questi pacchetti e poi ho risolto il problema. Saluti!
RJFalconer,

Questo funziona perfettamente per me. Uso Rider e l'applicazione è stata originariamente costruita in VS. Grazie per averlo inserito qui.
Yatin,

17

La DLL che stai cercando contiene quello spazio dei nomi

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Si noti che il test dell'unità non può essere utilizzato in Visual Studio Express .


3
Potresti darmi il link per il download?
Amit Pal

@AmitPal Quale edizione di Visual Studio hai? Dovrebbe essere incluso con la maggior parte delle edizioni.
Joachim Isaksson,

visual studio 2010 e .net 4.0
Amit Pal

@AmitPal Vedi la mia risposta per questa domanda per il percorso DLL. Deve essere lì.
Agente 007,

5
@AmitPal Visual Studio 2010 Express non ha quella DLL e non può essere aggiunta per far funzionare i test di unità (dovrai usare uno strumento di test di terze parti come nUnit) Se stai usando un software professionale o superiore, vedi la risposta di agent007.
Joachim Isaksson,

10

C'è anche un bel pacchetto di nuget . Tirerà la dll nella cartella dei pacchetti. Sarà necessario aggiungere manualmente il riferimento alla dll.

NOTA : questo pacchetto non è un pacchetto Microsoft ufficiale.


1
Impossibile installare il pacchetto nuget nel progetto per .net 4.0 con VS2013. L'unica opzione per la versione era 11.0.50727.1.
WebComer

1
qualcuno può dire se questo nuget è veramente di proprietà di Microsoft? Sembra essere un nuget personale contenente assemblee Microsoft
BozoJoe

9

Per risolvere questo problema, ho dovuto fare quanto segue:

  1. Avviare il programma di installazione di Visual Studio con privilegi di amministratore
  2. Se viene richiesto di installare gli aggiornamenti in Visual Studio, farlo prima di continuare
  3. Quando richiesto, fare clic sul pulsante per modificare l'installazione esistente
  4. Fai clic sulla scheda / intestazione "Componenti singoli" nella parte superiore
  5. Scorri verso il basso fino alla sezione "Debug e test"
  6. Seleziona la casella accanto a "Strumenti di test delle prestazioni e del carico sul Web"
  7. Fare clic sul pulsante Modifica nell'angolo in basso a destra della finestra di dialogo per installare le DLL mancanti

Una volta installate le DLL, è possibile aggiungere riferimenti ad esse utilizzando il metodo indicato da Agent007 nella sua risposta.


1
"Strumenti per le prestazioni Web e test di carico" non viene più visualizzato. Cosa consiglieresti di selezionare invece?
Shafiq Jetha,

@ShafiqJetha, vedo ancora l'opzione per "Strumenti di test di carico e prestazioni Web". Sto usando Visual Studio Enterprise 2017 - 15.8.9. Quale versione stai usando? Sembra che Microsoft abbia cambiato leggermente l'interfaccia dell'installer da quando ho scritto il post sopra. Quando avvio il programma di installazione di Visual Studio (eseguendolo come amministratore), faccio clic sul pulsante "Altro" a destra dei pulsanti "Aggiorna" e "Avvia", quindi seleziona "Modifica", quindi riprendo con il passaggio 4 nell'elenco in il mio post sopra.
S. Hooley,

Sto usando il programma di installazione di Build Tools per Visual Studio 2017, quindi questo potrebbe spiegarlo.
Shafiq Jetha,

@ShafiqJetha cosa hai usato per finire?
Vin Shahrdar,

@VinShahrdar Sinceramente non ricordo; questo è stato tanto tempo fa. Penso che abbiamo risolto il problema usando forse il pacchetto NuGet di qualcun altro per ottenere le DLL richieste. O forse abbiamo salvato la DLL nel repository. Sinceramente non ricordo, scusa.
Shafiq Jetha,

8

Se si utilizza Visual Studio 2017 Community, la posizione è:

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

La DLL che vuoi è lì: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Apparentemente si trova nella C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\directory per la versione di Visual Studio 2010 Professional, ma tieni presente che10.0 cambierà in base all'anno di rilascio, ovvero VS 2013 era la versione 12.0, VS 2015 era la versione 14.0, VS 2017 è 15.0. (VS Express non è supportato e richiederebbe invece l'installazione del pacchetto NUnit NuGet, tramite Gestione pacchetti NuGet.)

Vai a Riferimenti , fai clic con il pulsante destro del mouse, seleziona Aggiungi riferimento, Sfoglia . Passare al percorso, quindi fare doppio clic sul file.

Quindi, è necessaria una usingdichiarazione nella parte superiore della classe di unit test:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Navigando, significa che il pulsante Sfoglia in basso, non la cartella Sfoglia a sinistra.
Alan Baljeu,

@AlanBaljeu Molto vero.
vapcguy,

0

Vale a dire per Visual Studio 2013 farei riferimento a questo assembly:

Microsoft.VisualStudio.Shell.14.0.dll

Puoi trovarlo, cioè qui:

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

e non dimenticare di implementare:

utilizzando Microsoft.VisualStudio;


0

Se sei venuto qui perché il processo di compilazione VSTS non riesce con il messaggio di errore sopra riportato. Assicurarsi di utilizzare almeno la versione 2. * dell'attività nuget per ripristinare i pacchetti.


Sai perché è necessaria la versione 2. *? Siamo su TFS 2017 e stiamo riscontrando questo errore.
DylanSp

Ho appena alzato il codice da QA a UAT e ora sto testando gli unittest SAME, sul computer SAME, nella stessa cartella Parent praticamente nella stessa soluzione. ma nooo .. Nessun improvvisamente trovato ... Sono così stanco dell'inferno di Microsofts Path che hanno creato negli anni successivi.
Christian,

0

Ho riscontrato questo problema dopo aver spostato un progetto ed eliminato la cartella dei pacchetti. Nuget ha mostrato che MSTest.TestAdapter e MSTest.TestFramework v 1.3.2 erano installati. La correzione sembrava essere quella di aprire VS come amministratore e compilare. Dopo di che sono stato in grado di riaprire e compilare senza avere privilegi di amministratore.


0

Aggiungi un riferimento al pacchetto NuGet "Microsoft.VisualStudio.QualityTools.UnitTestFramework" e dovrebbe crearlo correttamente.


Sono sicuro che le altre sette voci che suggeriscono questa soluzione esatta, non arrivano ai lettori. La ripetizione è ancora migliore quando la ripeti.
Christian,

0

Con Visual Studio 2019, che esegue un progetto 3.1 core core, sarà necessario installare l'ultimo framework di test per risolvere l'errore.

Il modo più semplice per ottenere questo risultato è passando il browser sopra un'annotazione [Test] (sottolineata in rosso) e selezionare le correzioni suggerite. Quello necessario è "cercare e installare l'ultimo framework di test".


-4

Basta fare riferimento a questo URL e scaricare e salvare i file dll richiesti @ questa posizione:

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

L'URL è: https://github.com/NN---/vssdk2013/find/master

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.