Où trouver la DLL manquante «Microsoft.VisualStudio.TestTools.UnitTesting»?


131

Je reçois l'erreur suivante dans mon projet de studio visuel C #:

Le type ou le nom d'espace de noms 'VisualStudio' n'existe pas dans l'espace de noms 'Microsoft' (vous manquez une référence d'assembly?)

J'ai également essayé de trouver le fichier microsoft.dll mais je n'ai pas pu obtenir de référence. Est-ce que je recherche la mauvaise DLL?

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
Obtenez-vous toujours la même erreur après avoir ajouté la référence d'assembly à Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll?
Joachim Isaksson

Réponses:


144

Vous devez ajouter une référence à

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 

Il se trouve dans le répertoire "C: \ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PublicAssemblies \" (pour VS2010 professionnel ou supérieur; .NET Framework 4.0).

ou faites un clic droit sur votre projet et sélectionnez: Ajouter une référence ...> .NET: ou cliquez sur Ajouter une référence ...> .NET:


2
Pourquoi cela a-t-il été accepté? Les commentaires semblent indiquer que cela n'a pas été utile. Quelqu'un pourrait-il élaborer?
sirdank

@sirdank Vous réalisez que personne d'autre que l'OP ne peut accepter une réponse comme solution, n'est-ce pas? Si cela n'avait pas été utile pour l'OP, il ne l'aurait pas accepté.
Agent007

4
@ Agent007 Je sais. Cependant, le PO laissant un commentaire indiquant que cela n'a pas fonctionné suggère (du moins pour moi) que quelque chose de plus doit être fait. Après avoir déterminé ce qu'il fallait faire d'autre, ne pas laisser de commentaire décrivant cela ne semble pas utile.
sirdank

6
Juste eu ce problème, et cette réponse était la solution. Quelqu'un a-t-il une idée de pourquoi c'est le cas? Pourquoi l'espace de noms Microsoft.VisualStudio.TestTools.UnitTestinget l'assembly sont-ils Microsoft.VisualStudio.QualityTools.UnitTestFramework? Pourquoi ne pourraient-ils pas les nommer tous les deux de la même manière?
Alan Thomas

Une des raisons pour lesquelles j'ai été trébuché était que lorsque Team Build se construira, il apparaîtra dans un dossier différent en fonction de la version. Microsoft Visual Studio 10.0 pour VS 2010, Microsoft Visual Studio 12.0 pour VS 2013, Microsoft Visual Studio 14.0 pour VS 2015.
Ryan Gates

67

Je sais que c'est vieux, c'est ce qui est apparu dans ma recherche Google. J'avais besoin de référencer ces packages sur NuGet:

entrez la description de l'image ici


Dans mon cas (VS2019), j'avais besoin de mettre à niveau ces packages, puis cela a résolu le problème. À votre santé!
RJFalconer

Cela fonctionne parfaitement pour moi. J'utilise Rider et l'application a été construite à l'origine dans VS. Merci d'avoir mis ceci ici.
Yatin

17

La DLL que vous recherchez et qui contient cet espace de noms est

Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Notez que les tests unitaires ne peuvent pas être utilisés dans Visual Studio Express .


3
Pouvez-vous me donner le lien de téléchargement?
Amit Pal

@AmitPal Quelle édition de Visual Studio avez-vous? Il devrait être inclus dans la plupart des éditions.
Joachim Isaksson

visual studio 2010 et .net 4.0
Amit Pal

@AmitPal Voir ma réponse à cette question pour le chemin DLL. Ça doit être là.
Agent007

5
@AmitPal Visual Studio 2010 Express n'a pas cette DLL et ne peut pas être ajoutée pour faire fonctionner les tests unitaires (vous devrez utiliser un outil de test tiers comme nUnit) Si vous utilisez professionnel ou supérieur, consultez la réponse de l'agent007.
Joachim Isaksson

10

Il y a aussi un joli paquet de pépites . Il tirera la dll dans votre dossier packages. Vous devrez ajouter la référence à la DLL manuellement.

REMARQUE : ce package n'est pas un package Microsoft officiel.


1
Le package nuget n'a pas pu être installé dans le projet pour .net 4.0 avec VS2013. La seule option pour la version était 11.0.50727.1.
WebComer

1
quelqu'un peut-il dire si cette pépite appartient vraiment à Microsoft? Il semble être une pépite personnelle contenant des assemblées Microsoft
BozoJoe

9

Pour résoudre ce problème, j'ai dû procéder comme suit:

  1. Lancez le programme d'installation de Visual Studio avec des privilèges administratifs
  2. S'il vous invite à installer les mises à jour de Visual Studio, faites-le avant de continuer
  3. Lorsque vous y êtes invité, cliquez sur le bouton pour modifier l'installation existante
  4. Cliquez sur l'onglet / en-tête "Composants individuels" en haut
  5. Faites défiler jusqu'à la section "Débogage et test"
  6. Cochez la case "Performances Web et outils de test de charge"
  7. Cliquez sur le bouton Modifier dans le coin inférieur droit de la boîte de dialogue pour installer les DLL manquantes

Une fois les DLL installées, vous pouvez y ajouter des références à l'aide de la méthode indiquée par Agent007 dans sa réponse.


1
"Performances Web et outils de test de charge" n'apparaît plus. Que recommanderiez-vous que nous choisissions à la place?
Shafiq Jetha

@ShafiqJetha, je vois toujours l'option "Performances Web et outils de test de charge". J'utilise Visual Studio Enterprise 2017 - 15.8.9. Quelle version utilisez-vous? Il semble que Microsoft a légèrement modifié l'interface du programme d'installation depuis que j'ai écrit le message ci-dessus. Lorsque je lance le programme d'installation de Visual Studio (en l'exécutant en tant qu'administrateur), je clique sur le bouton «Plus» à droite des boutons «Mettre à jour» et «Lancer», puis sélectionnez «Modifier», puis reprends à l'étape 4 dans la liste dans mon message ci-dessus.
S. Hooley

J'utilise le programme d'installation de Build Tools pour Visual Studio 2017, donc cela pourrait l'expliquer.
Shafiq Jetha

@ShafiqJetha qu'avez-vous fini par utiliser?
Vin Shahrdar

@VinShahrdar Je ne me souviens honnêtement pas; c'était il y a si longtemps. Je pense que nous avons contourné le problème peut-être en utilisant le package NuGet de quelqu'un d'autre pour obtenir les DLL requises. Ou peut-être avons-nous enregistré la DLL dans le dépôt. Honnêtement, je ne m'en souviens pas, désolé.
Shafiq Jetha

8

Si vous utilisez Visual Studio 2017 Community, l'emplacement est:

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

La DLL que vous voulez est là: Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll

Apparemment, il se trouve dans le C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\répertoire de la version Visual Studio 2010 Professional, mais notez que le10.0 changera pour correspondre à l'année de sortie, c'est-à-dire que VS 2013 était la version 12.0, VS 2015 était la version 14.0, VS 2017 est 15.0. (VS Express n'est pas pris en charge et nécessiterait l'installation du package NUnit NuGet, via le gestionnaire de package NuGet, à la place.)

Vous allez dans Références , cliquez avec le bouton droit de la souris, sélectionnez Ajouter une référence, Parcourir . Accédez au chemin, puis double-cliquez sur le fichier.

Ensuite, vous avez besoin d'une usingdéclaration en haut de votre classe de test unitaire:

using Microsoft.VisualStudio.TestTools.UnitTesting;


1
Par parcourir, cela signifie le bouton Parcourir en bas, pas le dossier Parcourir sur la gauche.
Alan Baljeu

@AlanBaljeu Très vrai.
vapcguy

0

Ie pour Visual Studio 2013, je ferais référence à cet assembly:

Microsoft.VisualStudio.Shell.14.0.dll

Vous pouvez le trouver par exemple ici:

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

et n'oubliez pas de mettre en œuvre:

en utilisant Microsoft.VisualStudio;


0

Si vous êtes venu ici parce que votre tâche de génération VSTS échoue avec le message d'erreur ci-dessus. Assurez-vous que vous utilisez au moins la version 2. * de la tâche nuget pour restaurer vos packages.


Savez-vous pourquoi la version 2. * est nécessaire? Nous sommes sur TFS 2017 et rencontrons cette erreur.
DylanSp

Je viens de passer le code de QA à UAT et je teste maintenant les MÊMES unittests, sur le MÊME ordinateur, dans le même dossier Parent dans pratiquement la même solution. mais nooo .. Aucun unittest trouvé soudainement .... Je suis tellement fatigué de l'enfer de Microsofts Path qu'ils ont créé ces dernières années.
Christian

0

J'ai eu ce problème après avoir déplacé un projet et supprimé son dossier packages. Nuget a montré que MSTest.TestAdapter et MSTest.TestFramework v 1.3.2 étaient installés. Le correctif semblait être d'ouvrir VS en tant qu'administrateur et de construire Après cela, j'ai pu rouvrir et construire sans avoir le privilège d'administrateur.


0

Ajoutez une référence au paquet NuGet «Microsoft.VisualStudio.QualityTools.UnitTestFramework» et il doit réussir à le créer.


Je suis sûr que les sept autres entrées suggérant cette solution exacte ne parviennent pas aux lecteurs. La répétition est encore meilleure lorsque vous la répétez.
Christian

0

Avec Visual Studio 2019, exécutant un projet .net core 3.1, vous devrez installer la dernière infrastructure de test pour résoudre l'erreur.

Le moyen le plus simple d'y parvenir est de faire passer le navigateur sur une annotation [Test] (soulignée en rouge) et de sélectionner les correctifs suggérés. Il faut "rechercher et installer le dernier framework de test".


-4

Reportez-vous simplement à cette URL et téléchargez et enregistrez les fichiers dll requis à cet emplacement:

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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.