web-dev-qa-db-fra.com

Où se trouve Create Unit Test dans VS 2017?

Je comprends que cette question a été posée avant le SO et il semble que cette fonctionnalité ait été supprimée de VS à un moment donné. Mais je regarde un Microsoft tutorial right maintenant et cela dit qu'il devrait y avoir une fonction Créer un test unitaire dans VS 2017.

J'essaie de tester les contrôleurs ASP.NET Core MVC. J'ai suivi les étapes de création d'un projet de test. Mais je ne vois toujours pas une telle option lorsque je clique avec le bouton droit sur un espace de noms/classe/méthode.

EDIT: j'utilise Visual Studio 2017 Community Edition

27
lfk

La réponse ci-dessous concerne uniquement .NET Core/Standard. Si vous manquez l'option Créer des tests unitaires pour un projet .NET Framework complet voir ici .

État actuel: il arrive bientôt pour .NET Core

L'option de menu contextuel Créer des tests unitaires n'est pas (encore) prise en charge pour les projets qui ciblent .NET Core et .NET Standard.

La documentation était mise à jour pour refléter cela en juillet 2018 et indique maintenant:

La commande de menu Créer des tests unitaires:

  • Est disponible dans les éditions Community, Professional et Enterprise de Visual Studio 2015 et versions ultérieures.
  • Prend en charge uniquement le code C # qui cible le .NET Framework.
  • Est extensible et prend en charge l'émission de tests au format MSTest, MSTest V2, NUnit, xUnit.
  • N'est pas encore disponible dans les projets .NET Core.

Cette fonctionnalité était sortie prévue dans la version 15.9 de Visual Studio, mais maintenant semble avoir été repoussée à la version 16.1 .

J'ai testé cela dans un projet .NET Core 2.2 dans Visual Studio Professional 2019 RC (version 16.0.0) et je peux confirmer que cela ne fonctionne toujours pas là-bas - comme prévu selon la réponse ci-dessus.

Je viens également de tester Visual Studio Professional 2019 Preview (version 16.1.0 Preview 2.0) et il n'est pas disponible non plus, il ne semble donc pas que Microsoft y soit encore parvenu.

Voir les mises à jour ci-dessous pour plus d'historique et de détails.

Histoire

Réponse originale juin 2017

Cette entrée GitHub de Jayarani Garg de Microsoft , a confirmé qu'elle n'est disponible que pour les projets ciblant le framework .NET complet:

Jayarani Garg [MSFT] · 27 février 2017 à 06:09 Bonjour,

Merci pour votre avis. "Créer un test unitaire" n'est actuellement pas pris en charge pour les projets .Net Core.

C'est par conception plutôt qu'un bogue selon ce commentaire de l'équipe Visual Studio sur la même page de la communauté des développeurs Visual Studio:

Équipe Visual Studio ♦ Alignment · 10 mars 2017 à 13 h 06

Merci pour votre avis! L'équipe Visual Studio a déterminé que ce problème n'est pas un bogue. Cependant, nous prendrons en compte ces commentaires et avons créé https://github.com/Microsoft/vstest/issues/592 pour suivre cela. N'hésitez pas à voter pour le problème.

Le problème github mentionné ci-dessus sur le dépôt Microsoft VS Test Créer un menu contextuel de test unitaire manquant (projets de base .net) est légèrement déroutant. Il demande également que cette fonctionnalité soit ajoutée pour les projets .NET Core, mais un employé de Microsoft parle ensuite de la résolution d'un problème. Je crois que l'employé fait référence à l'ancien bogue où l'option du menu contextuel ne fonctionnait pas non plus pour les projets de framework .NET complets comme indiqué dans cette question qui est également mentionné dans ce fil. Pour autant que je puisse voir, ce thread ne dit pas qu'ils ont ajouté l'option de menu pour les projets .NET Core.

Je viens également de vérifier une copie de Visual Studio Professional 2017, version 15.2 (26430.6) et je ai l'option Créer des tests unitaires pour un projet qui cible le framework .NET complet (celui-ci cible le .NET Framework 4.5.1):

Create Unit Test menu item present

Mais je ne l'ai pas pour un projet qui cible .NETCoreApp 1.1:

Create Unit Test menu item missing

Mise à jour juin 2018

Microsoft a pris note des votes positifs pour la demande de fonctionnalité et prévoit d'introduire l'option de menu contextuel pour les projets .NET Core dans la version 15.8:

Manish Jayaswal [MSFT] en réponse à Daniel Tibi · 6 avril 2018 à 22h30

L'ajout de cette fonctionnalité aux projets .NET Core nécessite des changements importants dans le nouveau système de projet - qui pilote les projets .NET Core. Ce travail est suivi dans le référentiel GitHub du système de projet dans ce problème ( https://github.com/dotnet/project-system/issues/3425 ). Ce problème devrait être résolu dans la période de publication de la version 15.8. Malheureusement, la fonctionnalité de création d'un test unitaire pour les projets .NET Core ne serait pas disponible dans la prochaine version 15.7. Nous comprenons parfaitement qu'il s'agit d'une caractéristique clé et ferons de notre mieux pour la rendre disponible le plus tôt possible.

Mise à jour juillet 2018

La page Créer des stubs de méthode de test unitaire avec la commande Créer des tests unitaires a mise à jour maintenant pour indiquer que cela ne fonctionne pas pour .NET Core.

Mise à jour août 2018

Comme indiqué par @ gartenriese ci-dessous, le problème GitHub 3425 décrit par Microsoft comme le suivi de ce travail a été déplacé vers le jalon 15,9 le 02 août 2018 .

Mise à jour janvier 2019

La fonctionnalité de test unitaire semble dépendre ou être bloquée par ne autre partie du développement . Cette partie est maintenant prévue pour VS 16.1, c'est-à-dire VS 2019, et est également plus bas dans la liste des priorités que EF Core 3.0 (qui est l'une des principales caractéristiques de VS 16) selon ce post GitHub de David Kean de Microsoft .

40
tomRedox