2014-06-18 4 views
1

J'ai un projet réalisé récemment par un membre de l'équipe. J'ai ajouté quelques classes et je voulais les tester ensemble. J'ai ajouté le projet à notre solution de test unitaire, mais je ne peux pas cliquer sur une fonction avec le bouton droit de la souris et sélectionner "Create Unit Test". J'ai trouvé une solution pour taper manuellement EditorContextMenus.CodeWindow.CreateUnitTests dans la fenêtre de commande, mais ensuite j'obtiens une erreur "La génération de test est uniquement prise en charge sur les projets non test."Comment Visual Studio 2010 détermine-t-il quels projets sont des projets de test?

J'ai cherché "test" à travers le projet entier et est venu seulement avec PopulateStructure donc il n'y a pas de fonctions avec les attributs de test. J'ai supprimé une référence erronnée à Microsoft.VisualStudio.QualityTools.UnitTestFramework qui, selon le membre de l'équipe, avait été automatiquement insérée par Visual Studio. La référence n'est pas revenue quand j'ai compilé, mais je ne pouvais toujours pas générer automatiquement des tests.

j'ai cherché [ et l'attribut uniquement à l'extérieur AssemblyInfo.cs est l'un des nôtres:

[AttributeUsage(AttributeTargets.All)] 
public class OurAttribute_C : System.Attribute 
{ 
    ... 

J'ai fait un diff entre ce fichier de projet et un autre fichier de projet que je teste, et vu rien d'évident. Pareil avec les fichiers AssemblyInfo.

Je sais que je peux créer manuellement les tests sans l'outil, mais pourquoi VS2010 pense-t-il que ce projet est un projet de test unitaire? En recherchant ceci j'ai trouvé beaucoup de plaintes au sujet de la fonctionnalité étant complètement absent de VS2012 bêta, j'ai la caractéristique dans d'autres projets juste pas celui-ci. Quelques endroits avaient des plaintes liées, mais pas de réponses.

question similaire (légèrement différente) sans réponse: Unit test generation error in Visual studio website project?

Répondre

0

Lorsque vous avez créé le projet « test », avez-vous choisi un type de projet d'essai?

Dans le csproj, il y a une étiquette appelée ProjectTypeGuids qui donne au projet un type ou une liste de types pour que l'EDI comprenne quel outillage IDE utiliser. Vous pouvez le modifier manuellement dans le csproj.

Here est une liste non définitive de GUIDS

chose serait plus facile de tuer tout ce projet et créer un nouveau projet à partir du modèle correct.

+0

Non, ce projet n'est pas censé être un projet de test, c'est une bibliothèque de classe que je souhaite tester. Propriétés du projet, Application, Le type de sortie est 'Class Library'. –

+0

Tuer le projet et recommencer semble fonctionner, mais cela ne résout pas le mystère du pourquoi. –

+0

Peut-être: ' {3AC096D0-A1C2-E12C-1390-A8335801FDAB}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}' –

Questions connexes