Exécuter des tests unitaires avec l'Explorateur de tests

 

Pour obtenir la dernière documentation sur Visual Studio 2017, consultez Documentation Visual Studio 2017.

Utilisez l'Explorateur de tests pour exécuter des tests unitaires à partir de Visual Studio ou de projets de tests unitaires tiers, regrouper des tests en catégories, filtrer la liste de tests et créer, enregistrer et exécuter des sélections de tests. Vous pouvez également déboguer des tests et analyser les performances des tests et la couverture du code.

Infrastructures de tests unitaires et projets de test

Exécuter des tests dans l’explorateur de tests

Afficher les résultats des tests

Regrouper et filtrer la liste de tests

Créer des sélections personnalisées

Déboguer et analyser des tests unitaires

Ressources externes

Visual Studio inclut les infrastructures de tests unitaires Microsoft pour le code managé comme pour le code natif. Toutefois, l'Explorateur de tests peut également exécuter toute infrastructure de tests unitaires qui a implémenté un adaptateur pour l'Explorateur de tests. Pour plus d’informations sur l’installation des infrastructures de tests unitaires tierces, consultez Installer des infrastructures de tests unitaires tierces

L'Explorateur de tests peut exécuter des tests à partir de plusieurs projets de test dans une solution et à partir de classes de test qui font partie des projets de code de production. Les projets de test peuvent utiliser différentes infrastructures de tests unitaires. Quand le code testé est écrit pour le .NET Framework, le projet de test peut être écrit dans n'importe quel langage qui cible également le .NET Framework, quel que soit le langage du code cible. Les projets de code C/C++ natifs doivent être testés à l'aide d'une infrastructure de tests unitaires C++.

Retour au début Sommaire

Exécuter les tests | Exécuter des tests après chaque génération

Quand vous générez le projet de test, les tests s’affichent dans l’explorateur de tests. Si l’explorateur de tests n’est pas visible, sélectionnez Test dans le menu Visual Studio et choisissez Fenêtres, puis Explorateur de tests.

Explorateur de tests unitaires

Tandis que vous exécutez, écrivez et réexécutez vos tests, l'Explorateur de tests affiche les résultats dans les groupes par défaut Échecs de tests, Tests réussis, Tests ignorés et Tests non exécutés. Vous pouvez modifier la façon dont l'Explorateur de tests regroupe vos tests.

Vous pouvez effectuer la majeure partie du travail de recherche, d'organisation et d'exécution des tests à partir de la barre d'outils de l'Explorateur de tests.

Exécuter des tests à partir de la barre d'outils de l'explorateur de tests

Retour au début Sommaire

Exécuter les tests

Vous pouvez exécuter tous les tests dans la solution, tous les tests dans un groupe, ou un ensemble de tests que vous sélectionnez. Effectuez l’une des opérations suivantes :

  • Pour exécuter tous les tests dans une solution, choisissez Exécuter tout.

  • Pour exécuter tous les tests dans un groupe par défaut, choisissez Exécuter..., puis le groupe dans le menu.

  • Sélectionnez les différents tests à exécuter, ouvrez le menu contextuel pour un test sélectionné, puis choisissez Exécuter les tests sélectionnés.

  • Si les tests individuels n’ont aucune dépendance qui les empêche d’être exécutés dans n’importe quel ordre, activez l’exécution parallèle des tests avec le bouton bascule UTE_parallelicon-small dans la barre d’outils. Cela peut réduire sensiblement le temps nécessaire pour exécuter tous les tests.

La barre Réussite/Échec en haut de la fenêtre Explorateur de tests est animée pendant l'exécution des tests. À la fin de la série de tests, la barre Réussite/Échec devient verte si tous les tests ont réussi ou rouge si un test a échoué.

Retour au début Sommaire

Exécuter des tests après chaque génération

System_CAPS_ICON_warning.jpg Avertissement

L'exécution de tests unitaires après chaque génération est prise en charge dans Visual Studio Enterprise.

Run after buildPour exécuter vos tests unitaires après chaque génération locale, choisissez Test dans le menu standard, puis Exécuter les tests après la génération dans la barre d'outils de l'Explorateur de tests.

Retour au début Sommaire

Afficher les détails du test | Afficher le code source d'une méthode de test

Tandis que vous exécutez, écrivez et réexécutez vos tests, l'Explorateur de tests affiche les résultats dans les groupes Échecs de tests, Tests réussis, Tests ignorés et Tests non exécutés. Le volet d'informations en bas de l'Explorateur de tests affiche un résumé de la série de tests.

Afficher les détails du test

Pour afficher les détails d'un test individuel, sélectionnez le test.

Détails de l'exécution de tests

Le volet d'informations de test affiche les informations suivantes :

  • Nom du fichier source et numéro de ligne de la méthode de test.

  • Statut du test.

  • Temps d'exécution de la méthode.

Si le test échoue, le volet d'informations affiche également :

  • Le message retourné par l'infrastructure de tests unitaires pour le test.

  • La trace de la pile au moment de l'échec du test.

Retour au début Sommaire

Afficher le code source d'une méthode de test

Pour afficher le code source d'une méthode de test dans l'éditeur Visual Studio, sélectionnez le test, puis choisissez Ouvrir un test dans le menu contextuel (clavier : F12).

Retour au début Sommaire

Regroupement de la liste de tests | Regrouper par caractéristiques | Rechercher et filtrer la liste de tests

L'Explorateur de tests vous permet de regrouper vos tests en catégories prédéfinies. La plupart des infrastructures de tests unitaires qui s'exécutent dans l'Explorateur de tests vous permettent de définir vos propres catégories et paires catégorie/valeur pour regrouper vos tests. Vous pouvez également filtrer la liste de tests en mettant en correspondance les chaînes avec les propriétés de test.

Regroupement de la liste de tests

Pour modifier le mode d'organisation des tests, cliquez sur la flèche vers le bas à côté du bouton Grouper parBouton du groupe d'explorateur de tests et sélectionnez de nouveaux critères de regroupement.

Grouper les tests par catégorie dans l’Explorateur de tests

Groupes de l'explorateur de tests

RegrouperDescription
DuréeRegroupe les tests selon la durée d'exécution : Rapide, Moyenne et Lente.
RésultatRegroupe les tests selon les résultats de l'exécution : Échecs de tests, Tests ignorés, Tests réussis.
CaractéristiquesRegroupe les tests selon les paires catégorie/valeur que vous définissez. La syntaxe permettant de spécifier les catégories et les valeurs des caractéristiques est définie par l'infrastructure de tests unitaires.
ProjetRegroupe les tests selon le nom des projets.

Retour au début Sommaire

Regrouper par caractéristiques

Une caractéristique est habituellement une paire nom/valeur de catégorie, mais elle peut également être une catégorie unique. Des caractéristiques peuvent être assignées aux méthodes identifiées comme une méthode de test par l'infrastructure de tests unitaires. Une infrastructure de tests unitaires peut définir des catégories de caractéristiques. Vous pouvez ajouter des valeurs aux catégories de caractéristiques pour définir vos propres paires nom/valeur de catégorie. La syntaxe permettant de spécifier les catégories et les valeurs des caractéristiques est définie par l'infrastructure de tests unitaires.

Caractéristiques dans l'infrastructure de tests unitaires Microsoft pour le code managé

Dans l'infrastructure de tests unitaires Microsoft pour les applications managées, vous définissez une paire nom/valeur de caractéristique dans un attribut TestPropertyAttribute. L'infrastructure de tests contient également les caractéristiques prédéfinies suivantes :

CaractéristiqueDescription
OwnerAttributeLa catégorie Owner est définie par l'infrastructure de tests unitaires et nécessite que vous fournissiez une valeur de chaîne du propriétaire.
PriorityAttributeLa catégorie Priority est définie par l'infrastructure de tests unitaires et nécessite que vous fournissiez une valeur entière de la priorité.
TestCategoryAttributeL'attribut TestCategory vous permet de fournir une catégorie sans valeur. Une catégorie définie par l'attribut TestCategory peut également être la catégorie d'un attribut TestProperty.
TestPropertyAttributeL'attribut TestProperty vous permet de définir la paire catégorie/valeur de caractéristique.

Caractéristiques dans l'infrastructure de tests unitaires Microsoft pour C++

Pour définir une caractéristique, utilisez la macro TEST_METHOD_ATTRIBUTE. Par exemple, pour définir une caractéristique nommée TEST_MY_TRAIT :

#define TEST_MY_TRAIT(traitValue) TEST_METHOD_ATTRIBUTE(L"MyTrait", traitValue)  

Pour utiliser la caractéristique définie dans vos tests unitaires :

BEGIN_TEST_METHOD_ATTRIBUTE(Method1)  
    TEST_OWNER(L"OwnerName")  
    TEST_PRIORITY(1)  
    TEST_MY_TRAIT(L"thisTraitValue")  
END_TEST_METHOD_ATTRIBUTE()  
  
TEST_METHOD(Method1)  
{     
    Logger::WriteMessage("In Method1");  
    Assert::AreEqual(0, 0);  
}  

Macros d'attribut de fonctionnalités C++

MacroDescription
TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)Utilisez la macro TEST_METHOD_ATTRIBUTE pour définir une caractéristique.
TEST_OWNER(ownerAlias)Utilisez la caractéristique Owner prédéfinie pour spécifier un propriétaire de la méthode de test.
TEST_PRIORITY(priority)Utilisez la caractéristique Priority prédéfinie pour assigner des priorités relatives à vos méthodes de test.

Retour au début Sommaire

Rechercher et filtrer la liste de tests

Vous pouvez utiliser des filtres de l'Explorateur de tests pour limiter les méthodes de test dans les projets que vous affichez et exécutez.

Quand vous tapez une chaîne dans la zone de recherche de l'Explorateur de tests et appuyez sur Entrée, la liste de tests est filtrée pour afficher uniquement les tests dont les noms qualifiés complets contiennent la chaîne.

Pour filtrer selon un autre critère :

  1. Ouvrez la liste déroulante à droite de la zone de recherche.

  2. Choisissez un nouveau critère.

  3. Entrez la valeur de filtre entre guillemets.

Filtrer les tests dans l’Explorateur de tests

System_CAPS_ICON_note.jpg Remarque

Les recherches ne respectent pas la casse et associent la chaîne spécifiée à une partie de la valeur de critère.

QualificateurDescription
CaractéristiqueRecherche la catégorie et la valeur de caractéristique pour les correspondances. La syntaxe permettant de spécifier les catégories et les valeurs des caractéristiques est définie par l'infrastructure de tests unitaires.
ProjetRecherche les noms de projet de test pour les correspondances.
Message d'erreurRecherche les messages d'erreur définis par l'utilisateur retournés par des assertions ayant échoué pour les correspondances.
Chemin d'accès au fichierRecherche le nom de fichier qualifié complet des fichiers sources de test pour les correspondances.
Nom qualifié completRecherche le nom de fichier qualifié complet des espaces de noms, des classes et des méthodes de test pour les correspondances.
SortieRecherche les messages d'erreur définis par l'utilisateur qui sont écrits dans la sortie standard (stdout) ou une erreur standard (stderr). La syntaxe permettant de spécifier les messages de sortie est définie par l'infrastructure de tests unitaires.
RésultatRecherche les noms de catégorie de l'Explorateur de tests pour les correspondances : Échecs de tests, Tests ignorés, Tests réussis.

Pour exclure un sous-ensemble des résultats d'un filtre, utilisez la syntaxe suivante :

FilterName:"Criteria" -FilterName:"SubsetCriteria"  

Par exemple :

FullName:"MyClass" - FullName:"PerfTest"  

retourne tous les tests qui incluent « MyClass » dans leur nom sauf ceux qui incluent également « PerfTest » dans leur nom.

Retour au début Sommaire

Vous pouvez créer et enregistrer une liste de tests que vous souhaitez exécuter ou visualiser en tant que groupe. Quand vous sélectionnez une sélection, les tests de la liste sont affichés dans l'Explorateur de tests. Vous pouvez ajouter un test à plusieurs sélections, et tous les tests de votre projet sont disponibles quand vous choisissez la sélection par défaut Tous les tests.

Choisir une sélection

Pour créer une sélection, sélectionnez un ou plusieurs tests dans l'Explorateur de tests. Dans le menu contextuel, sélectionnez Ajouter à la sélection, NewPlaylist. Enregistrez le fichier sous le nom et à l'emplacement que vous spécifiez dans la boîte de dialogue Créer une sélection.

Pour ajouter des tests à une sélection, sélectionnez un ou plusieurs tests dans l'Explorateur de tests. Dans le menu contextuel, choisissez Ajouter à la sélection, puis la sélection à laquelle vous souhaitez ajouter des tests.

Pour ouvrir une sélection, choisissez Test, Sélection dans le menu Visual Studio, puis choisissez une sélection dans la liste de sélections récemment utilisées ou choisissez Ouvrir la sélection pour spécifier le nom et l'emplacement de la sélection.

Si les tests individuels n’ont aucune dépendance qui les empêche d’être exécutés dans n’importe quel ordre, activez l’exécution parallèle des tests avec le bouton bascule UTE_parallelicon-small dans la barre d’outils. Cela peut réduire sensiblement le temps nécessaire pour exécuter tous les tests.

Retour au début Sommaire

Déboguer les tests unitaires | Diagnostiquer les problèmes de performances de méthode de test | Analyser la couverture du code de test unitaire

Déboguer les tests unitaires

Vous pouvez utiliser l'Explorateur de tests pour démarrer une session de débogage de vos tests. L'exécution pas à pas de votre code avec le débogueur Visual Studio vous conduit de manière transparente à des allers et retours entre les tests unitaires et le projet testé. Pour démarrer le débogage :

  1. Dans l’éditeur Visual Studio, définissez un point d’arrêt dans une ou plusieurs méthodes de test que vous souhaitez déboguer.

    System_CAPS_ICON_note.jpg Remarque

    Comme les méthodes de test peuvent s'exécuter dans n'importe quel ordre, définissez les points d'arrêt dans toutes les méthodes de test que vous souhaitez déboguer.

  2. Dans l'Explorateur de tests, sélectionnez les méthodes de test, puis choisissez Déboguer les tests sélectionnés dans le menu contextuel.

Pour plus d’informations sur le débogueur, consultez Débogage dans Visual Studio.

Retour au début Sommaire

Diagnostiquer les problèmes de performances de méthode de test

Pour diagnostiquer la raison pour laquelle une méthode de test est beaucoup trop longue, sélectionnez la méthode dans l'Explorateur de tests, puis choisissez Profil dans le menu contextuel. Consultez Utilisation des outils de profilage.

Analyser la couverture du code de test unitaire

System_CAPS_ICON_note.jpg Remarque

La couverture du code de test unitaire est uniquement disponible dans Visual Studio Enterprise.

Vous pouvez déterminer la quantité de code de votre produit qui est réellement testée par vos tests unitaires à l'aide de l'outil de couverture de code Visual Studio. Vous pouvez exécuter la couverture de code sur les tests sélectionnés ou sur tous les tests d'une solution.

Pour exécuter la couverture du code pour les méthodes de test dans une solution :

  1. Choisissez Tests dans le menu Visual Studio, puis Analyser la couverture du code.

  2. Sélectionnez l'une des commandes suivantes dans le sous-menu :

    • Tests sélectionnés exécute les méthodes de test que vous avez sélectionnées dans l'Explorateur de tests.

    • Tous les tests exécute toutes les méthodes de test de la solution.

La fenêtre Résultats de la couverture du code affiche le pourcentage des blocs du code du produit qui ont été testés par ligne, fonction, classe, espace de noms et module.

Pour plus d'informations, consultez Utilisation de la couverture du code pour déterminer la quantité de code testé.

Retour au début Sommaire

Conseils

Tester la livraison continue avec Visual Studio 2012 - Chapitre 2 : Tests unitaires : tester l’intérieur

Tests unitaires sur votre code
Exécuter un test unitaire comme processus 64 bits

Afficher: