J'ai converti une solution VS2008 qui contient des projets de tests unitaires en VS2010. Après la conversion, j'ai essayé de compiler la solution, mais j'obtiens l'erreur suivante:
Le nom de type ou d'espace de noms "VisualStudio" n'existe pas dans l'espace de noms "Microsoft" (vous manque-t-il une référence d'assembly?)
La déclaration d'espace de noms est introuvable using Microsoft.VisualStudio.TestTools.UnitTesting;
. En outre, je n'ai pas pu trouver l'assembly Microsoft.VisualStudio.QualityTools.UnitTestFramework lorsque j'ai essayé d'ajouter une nouvelle référence de projet.
Est-ce que quelqu'un sait ce que je fais mal?
Je viens d'avoir ce problème également, et avec une bibliothèque Microsoft.Data.Schema également. La réponse est correcte, dans la mesure où ces bibliothèques se trouvent sur la machine et dans le répertoire VS 10.0.
Le problème (au moins pour moi) était que la solution a été convertie à partir de VS2008 et que l'utilitaire de conversion a ciblé le projet pour .NET 3.5. Étant donné que la bibliothèque 10.0 nécessite .NET 4.0, elles ne sont pas récupérées par le compilateur.
La solution consiste à revenir à utiliser VS2008 là où ceux-ci se résolvent correctement; ou pour basculer le projet vers la compilation pour .NET 4.0 afin que vous puissiez utiliser les bibliothèques disponibles.
Cela s'appelle Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
.
Vous pouvez le trouver dans C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll
.
Pour Visual Studio 2015 Utilisateurs:
A eu un problème similaire, mais avec la mise à niveau d'une version de Prism WPF StockTraderRI Unity de Prism 2.2 vers 5.0 à l'aide de Visual Studio 2015. La version 5.0 utilisait MEF et j'avais besoin de la version Unity.
Les étapes que j'ai faites étaient les suivantes:
J'ai dû le faire pour plusieurs projets de test et le moyen le plus rapide de répéter l'ajout est de sélectionner simplement Assemblys | Récent
Pour VSTS 2010, assurez-vous de les avoir dans les références:
Microsoft.VisualStudio.QualityTools.UnitTestFramework
Microsoft.VisualStudio.QualityTools.WebTestFramework (si vous effectuez des tests Web)
Veuillez télécharger Visual Studio 2010 SP1. Installez-le. Il vous permettra ensuite de modifier le travail de cadre du projet de test de la version par défaut 4.0 à 3.5 et autres. Modifiez simplement le travail de cadre sur la version de travail de cadre du projet que vous souhaitez tester. Maintenant, le code se combinera paisiblement et vous pourrez exécuter le test.
+ Erik Brown a raison, le problème est que VS2010 prend en charge le ciblage de votre projet vers .NET 3.5 mais ne prend pas en charge les tests unitaires dans un projet .NET 3.5.
Cependant, comme il est logique de tester votre code sous un framework sur lequel votre code sera exécuté en production, il est souhaitable de faire fonctionner ce code. Un moyen simple de faire fonctionner cela est de tilisez NUnit à la place et utilisez Resharper pour exécuter les tests à partir de Visual Studio ou du lanceur de test NUNit. NUnit fonctionne avec .NET v2.x - v4.x avec un seul ensemble de binaires.