Où se trouve la sélection «Créer des tests unitaires»?

154

J'ai installé le nouveau Visual Studio 2012 Ultimate.

J'ai créé un projet de test avec ma solution et il contient des tests unitaires par défaut. Cependant, un clic droit sur de nouvelles méthodes n'affiche plus le menu contextuel "Créer des tests unitaires".

Voir Visual Studio 2010 Ultimate: entrez la description de l'image ici

Et Visual Studio 2012 Ultimate: entrez la description de l'image ici

Une idée pourquoi cela pourrait être?

METTRE À JOUR:

Solution pour Visual Studio 2012 et 2013:

Microsoft l'a reconnu ici et propose un correctif officiel pour le corriger. Téléchargez, installez et profitez-en!

Houman
la source
s'agit-il du même projet ou de la même version de mvc?
Daniel A. White
Ce sont de nouveaux projets MVC 4 construits à partir de zéro.
Houman
Intéressant. Que se passe-t-il lorsque vous cliquez sur "Exécuter les tests unitaires"?
Diego
2
je signalerais ceci comme un bogue.
Daniel A. White
4
VS 11 a beaucoup évolué dans la direction de la fourniture d'une infrastructure de test via MSTest à la fourniture d'un cadre de test enfichable. Cela pourrait être une conséquence de cette décision. De toute façon, je déposerais un bogue
JaredPar

Réponses:

86

Cette fonctionnalité a été supprimée de VS.

http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/08/what-s-new-in-visual-studio-11-beta-unit-testing.aspx

Générer un assistant de test unitaire - Dans VS2010, vous pouvez faire un clic droit sur une méthode dans votre code et nous générerons un test unitaire dans votre projet de test. Cet assistant était très étroitement couplé à MS-Test et dépendait de fonctionnalités telles que les accesseurs privés pour faire son travail, il a donc été coupé. Nous explorons des alternatives ici, mais nous n'avons pas encore de bonnes solutions.

EDIT Il y a un travail autour: http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Daniel A. White
la source
16
J'espère qu'ils trouveront une solution de travail. On dirait un grand pas en arrière autrement
Andrew Harry
3
Il semble que la troisième option de cette solution de contournement ne soit plus disponible dans VS2013.
Sander
La fonctionnalité revient dans VS2015 blogs.msdn.com/b/visualstudioalm/archive/2015/03/06/… grâce à ceux qui l'ont votée dans visualstudio.uservoice.com/forums/121579-visual-studio/... . @furier: Peut-être avez-vous voté pour?
LosManos
Je veux dire, c'était là il y a 5 minutes ... ce n'est tout simplement pas là maintenant - pourquoi ça va et vient?
BrainSlugs83
33

L' extension " Unit Test Generator " est disponible

Extension du générateur de test unitaire

Pour ajouter directement à partir de l'IDE de Visual Studio 2012/2013:

  1. Menu: Outils -> Extensions et mises à jour
  2. Cliquez sur: En ligne -> Galerie Visual Studio
  3. Rechercher: "Unit Test Generator"

Démonstration vidéo MSDN

Remarque: MSTest dans VS 2012/2013 est toujours nul

JohnB
la source
28

L'élément de menu est toujours en place, mais pour des raisons inconnues, il est invisible dans l'éditeur de code. Mais vous pouvez utiliser les commandes de Visual Studio pour exécuter l'assistant de test unitaire. La commande dont vous avez besoin est

EditorContextMenus.CodeWindow.CreateUnitTests

Ouvrez la fenêtre de commande et tapez la commande là-bas. Ou tapez une commande d'alias comme suit

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

et attribuez l'alias pour exécuter la commande plus rapidement.

Un autre moyen d'exécuter l'assistant est le raccourci clavier. Dans Visual Studio ouvert

Tools -> Options -> Environment -> Keyboard

Tapez "createunit" dans la zone de texte "Afficher les commandes contenant" pour filtrer la commande CreateUnitTests, sélectionnez-la. Choisissez "Editeur de texte" dans "Utiliser un nouveau raccourci dans" combo, et appuyez sur le raccourci souhaité dans le champ de texte "Appuyez sur les touches de raccourci" (par exemple, Ctrl + T, Ctrl + C). Enfin, appuyez sur le bouton Assign. Prendre plaisir!

intrus
la source
7
Je ne peux pas faire fonctionner ça. J'ai placé mon curseur sur la méthode. Appuyez sur le shortcode que j'ai ajouté, mais obtenez un message: La commande "EditorContextMenus.CodeWindow.CreateUnitTests" n'est pas disponible.
Ralph Jansen
J'ai essayé Visual Studio 2012 Ultimate avec la mise à jour installée, cela peut être important.
intrueder
1
J'obtiens la même erreur que LockTar quand j'essaye ceci. Le moyen le plus simple d'utiliser le test unitaire est donc de créer un nouveau projet de test unitaire.
saadan
Je ne peux pas expliquer pourquoi vous avez une erreur, mais j'ai récupéré la vidéo de preuve et vous pouvez la regarder sur grabilla.com/02c0a-6f42a829-1535-4016-a7ff-cbbda665bee5.html
intrueder
Si l'assistant n'est pas disponible, voir le blog dl.my/2013/create-unit-tests-function-not-available-or-disabled ou ma réponse ci-dessous stackoverflow.com/a/15184716/52277
Michael Freidgeim
19

Voici comment le réactiver:

Méthode 1 - Fenêtre de commande

Si vous trouvez assez difficile, vous découvrirez que la commande pour invoquer les tests unitaires de création ... est en fait:

EditorContextMenus.CodeWindow.CreateUnitTests

Vous pouvez en fait le taper dans la fenêtre de commande pour appeler l'assistant de création de test d'unité. Si vous le trouvez trop détaillé, vous pouvez en fait créer un alias pour lui.

alias ut EditorContextMenus.CodeWindow.CreateUnitTests

Ensuite, tapez simplement ut pour lancer l'assistant.

Méthode 2 - Raccourci clavier

La méthode suivante consiste à aller dans Outils-> Options-> Environnement-> Clavier et définir une touche de raccourci de votre préférence.

Méthode 3 - Réactivez le menu contextuel Créer des tests unitaires ...

Pour réactiver le menu Créer des tests unitaires ..., allez dans Outils-> Personnaliser ... pour lancer la boîte de dialogue Personnaliser. Dans la boîte de dialogue Personnaliser, accédez à l'onglet Commandes, sélectionnez le bouton radio du menu contextuel et choisissez Menus contextuels de l'éditeur | Fenêtre de code.

Vous vous rendrez compte que l'élément de menu est effectivement disponible dans le menu contextuel. Les développeurs VS ont eu la gentillesse de le laisser là pour nous.

Cliquez sur l'élément de menu Créer des tests unitaires ... et cliquez sur Descendre jusqu'à ce qu'il soit activé / sous la commande "Exécuter les tests ..". Cliquez ensuite sur Fermer.

Redémarrez Visual Studio 2012 et c'est tout! Le menu contextuel sera disponible!

Vous pouvez découvrir que l'utilisation de l'une des méthodes ci-dessus peut ne pas fonctionner. c'est-à-dire que la fenêtre de commande vous indiquera que la commande n'est pas disponible, que le raccourci clavier ne se déclenchera pas ou que le menu contextuel sera disponible mais désactivé.

Pour permettre à tout cela de fonctionner, vous devrez d'abord avoir un projet de test unitaire dans votre solution. Après avoir créé le projet de test unitaire, vous devrez ajouter manuellement un élément de test unitaire au projet même si le projet se déroule avec un seul. Après avoir fait cela, tout fonctionnera comme dans Visual Studio 2010. Vous pouvez supprimer en toute sécurité ces fichiers UnitTest1.cs.

Source (avec les images, je n'ai pas assez de Rep Points pour les mettre):
http://serena-yeoh.blogspot.fr/2013/02/visual-studio-2012-create-unit-test.html

(ps: lisez les mises en garde !!!!)

Sébastien H.
la source
Notez que l'assistant de création de tests unitaires de VS 2012 prend en charge les tests de génération pour les méthodes publiques uniquement, alors que dans la version précédente, les méthodes privées étaient également prises en charge.
Michael Freidgeim
3
Cela m'a beaucoup aidé, merci beaucoup. Il me manquait l'étape d'ajout d'un test unitaire factice dans mon remède.
Tanveer Badar
1
Créer manuellement un test unitaire important. Idiot je ne sais pas pourquoi l'élément de menu était désactivé jusque-là.
indolentdeveloper
J'ai
Sunny Tambi
9

La réponse d' intrueder n'a pas fonctionné pour de nombreux utilisateurs. Lorsque j'entre UT dans une fenêtre de commande, j'ai parfois les éléments suivants

>UT
Command "EditorContextMenus.CodeWindow.CreateUnitTests" is not available.

Mais parfois, cela fonctionnait pour la même solution, de sorte que le comportement semblait intermittent.

Avec l'aide du post de Dawa Law « Créer des tests unitaires… Fonction non disponible ou désactivée », j'ai constaté que lors de chaque session Visual Studio, vous devez créer une classe de test manuellement avant que l'assistant ne soit disponible.

Si vous avez un projet de test unitaire existant dans la solution,

Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet de test unitaire -> Ajouter -> Test unitaire… Cela créera une nouvelle classe de test unitaire et déclenchera à Visual Studio qu'une classe de test unitaire existante est disponible, activant ainsi l'assistant de création de tests unitaires. Remarque: vous pouvez supprimer le fichier de classe de test unitaire créé (UnitTestX.cs) car il est utilisé pour déclencher la fonction.

Si vous n'avez pas de projet de test unitaire existant dans la solution, vous devez le créer avant d'ajouter une classe manuelle:

Allez dans Fichier -> Ajouter -> Nouveau projet… Dans la fenêtre Ajouter un nouveau projet, sélectionnez Installé -> Visual C # -> Test -> Projet de test unitaire. Donnez-lui un nom significatif et cliquez sur OK

Le post de la loi Dawa « Créer des tests unitaires…» Fonction non disponible ou désactivée contient des instantanés pour illustrer chaque étape.

Notez que l'assistant de création de tests unitaires de VS 2012 prend en charge les tests de génération pour les méthodes publiques uniquement, alors que dans la version précédente, les méthodes privées étaient également prises en charge.

.

Michael Freidgeim
la source
"vous devez créer une classe de test manuellement avant que l'assistant ne soit disponible" - cela m'a fait l'affaire à la fin
Jorj
Merci d'avoir utilisé le blog de Dawa Law et c'est fini :)
Ahmed Elbatt
4

Vous pouvez regagner le clic droit "Créer des tests unitaires ..." en important les vssettings suivants à partir d' ici .

Loi Dawa
la source
3

http://blogs.msdn.com/b/malaysia/archive/2013/02/20/right-click-create-unit-tests.aspx

Méthode 3 - Réactivez le menu contextuel Créer des tests unitaires ...

C'est de loin la meilleure méthode jamais réalisée. Pour réactiver le menu Créer des tests unitaires ..., allez dans Outils-> Personnaliser ... pour lancer la boîte de dialogue Personnaliser. Dans la boîte de dialogue Personnaliser, accédez à l'onglet Commandes, sélectionnez le bouton radio du menu contextuel et choisissez Menus contextuels de l'éditeur | Fenêtre de code.

Peter Ming
la source
...et maintenant quoi? Il est déjà répertorié ici mais il ne s'affiche pas lorsque je clique avec le bouton droit de la souris.
Luke Puplett
0

"Vous pouvez découvrir que l'utilisation de l'une des méthodes ci-dessus peut ne pas fonctionner. C'est-à-dire que la fenêtre de commande vous indiquera que la commande n'est pas disponible, le raccourci clavier ne se déclenchera pas ou le menu contextuel sera disponible mais désactivé.

Pour permettre à tout cela de fonctionner, vous devrez d'abord avoir un projet de test unitaire dans votre solution. Après avoir créé le projet de test unitaire, vous devrez ajouter manuellement un élément de test unitaire au projet même si le projet se déroule avec un seul. Une fois cette opération effectuée, tout fonctionnera comme dans Visual Studio 2010. Vous pouvez supprimer en toute sécurité ces fichiers UnitTest1.cs. "

(Michael Freidgeim)

Varini
la source