Partager via


Exécuter des tests unitaires à l’aide de l’Explorateur de tests

Utilisez l’Explorateur de tests pour exécuter des tests unitaires à partir de projets de test unitaires visual Studio ou tiers. Dans l’Explorateur de tests, vous pouvez regrouper des tests en catégories, filtrer la liste de tests et créer, enregistrer et exécuter des playlists de tests. Vous pouvez également utiliser l’Explorateur de tests pour déboguer des tests unitaires et Visual Studio Enterprise pour analyser la couverture du code.

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érents frameworks de test unitaire. Lorsque le code sous test est écrit pour .NET, le projet de test peut être écrit dans n’importe quel langage qui cible également .NET, quel que soit le langage du code cible. Vous devez tester des projets de code C et C++ natifs à l’aide d’une infrastructure de test unitaire C++.

Générer votre projet de test

Si vous n’avez pas encore configuré de projet de test dans votre solution Visual Studio, vous devez d’abord créer et générer un projet de test. Utilisez ces ressources :

Visual Studio inclut les frameworks de test unitaire Microsoft pour le code managé et natif. Toutefois, l’Explorateur de tests peut également exécuter n’importe quel framework de test unitaire qui a implémenté un adaptateur De l’Explorateur de tests. Pour plus d’informations sur l’installation de frameworks de test unitaire tiers, consultez Installer des frameworks de test unitaire.

Exécuter des tests dans l’Explorateur de tests

Lorsque vous générez le projet de test, les tests apparaissent dans l’Explorateur de tests. Si l’Explorateur de tests n’est pas visible, sélectionnez test dans le menu Visual Studio, puis sélectionnez Explorateur de tests (ou appuyez sur Ctrl+E, T).

Capture d’écran montrant une liste de tests dans l’Explorateur de tests.

Capture d’écran montrant une liste de tests dans l’Explorateur de tests.

Lorsque vous exécutez, écrivez et réexécutez vos tests, l’Explorateur de tests affiche les résultats dans un regroupement par défaut de Project, Espace de nomset Classe. Vous pouvez modifier la façon dont l’Explorateur de tests regroupe vos tests.

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

Capture d’écran décrivant les icônes permettant d’exécuter des tests à partir de la barre d’outils de l’Explorateur de tests.

Capture d’écran décrivant les icônes pour l’exécution de tests à partir de la barre d’outils de l’Explorateur de tests.

Exécuter des tests

Choisissez l’une des options suivantes pour exécuter des tests :

  • Pour exécuter tous les tests d’une solution, sélectionnez l’icône Exécuter tout (ou sélectionnez Ctrl+R, V).

  • Pour exécuter tous les tests dans un groupe par défaut, sélectionnez l’icône Exécuter, puis sélectionnez le groupe dans le menu.

  • Pour exécuter des tests individuels, sélectionnez un ou plusieurs tests, cliquez avec le bouton droit dans le volet, puis sélectionnez Exécuter les tests sélectionnés (ou sélectionnez Ctrl+R, T).

    Si des tests individuels n’ont aucune dépendance qui les empêche d’être exécutés dans un ordre quelconque, activez l’exécution de test parallèle dans le menu paramètres de la barre d’outils. Cette action peut réduire le temps d’exécution de tous les tests.

Remarque

Pour configurer la plateforme cible (architecture de processus) pour l’exécution de tests unitaires, consultez Configurer l’architecture de processus pour un test unitaire.

Exécuter des tests après chaque build

Pour exécuter vos tests unitaires après chaque build locale, sélectionnez l’icône paramètres dans la barre d’outils de l’Explorateur de tests, puis sélectionnez Exécuter des tests après la génération.

Afficher les résultats des tests

Lorsque vous exécutez, écrivez et réexécutez vos tests, l'Explorateur de tests affiche les résultats dans des groupes de tests échoués, tests réussis, tests ignorés, et tests non exécutés. Le volet d’informations situé en bas ou côté de l’Explorateur de tests affiche un résumé de l’exécution de test.

Afficher les détails du test

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

Capture d’écran des détails de l’exécution des tests.

Capture d’écran des détails de l’exécution des tests.

Le volet des détails du test s’affiche :

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

  • État du test.

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

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

  • Message retourné par l’infrastructure de test unitaire pour le test.

  • Trace de pile au moment de l’échec du test.

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, cliquez avec le bouton droit sur le test, puis sélectionnez Ouvrir le test (ou sélectionnez la touche F12).

Regrouper et filtrer la liste de tests

Dans l’Explorateur de tests, vous pouvez regrouper vos tests en catégories prédéfinies. La plupart des frameworks de test unitaire 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 des tests en faisant correspondre des chaînes aux propriétés de test.

Regroupement de tests dans la liste d'évaluation

L’Explorateur de tests vous permet de regrouper vos tests dans une hiérarchie. Le regroupement de hiérarchies par défaut est Projet, Espace de noms, puis Classe. Pour modifier la façon dont les tests sont organisés, sélectionnez le bouton Grouper parbouton du groupe Explorateur de tests, puis sélectionnez un nouveau critère de regroupement.

Capture d’écran montrant les sélections de regroupement de tests par catégorie dans l’Explorateur de tests.

Vous pouvez définir vos propres niveaux de hiérarchie (grouper par État et ensuite par Classe , par exemple) en sélectionnant les options de regroupement dans l'ordre de votre choix.

Capture d’écran de l’Explorateur de tests montrant une hiérarchie de test dans un volet et le menu Regrouper par dans l’autre volet, avec les options Classe et État sélectionnées.

L’Explorateur de tests vous permet de regrouper vos tests dans une hiérarchie. Le regroupement de hiérarchies par défaut est Projet, Espace de noms, puis Classe. Pour modifier la façon dont les tests sont organisés, sélectionnez le bouton Grouper parbouton du groupe Explorateur de tests, puis sélectionnez un nouveau critère de regroupement.

Capture d’écran montrant les sélections de regroupement de tests par catégorie dans l’Explorateur de tests.

Vous pouvez définir vos propres niveaux de hiérarchie (grouper par État , puis Classe , par exemple) en sélectionnant les options de groupement par dans l'ordre que vous préférez.

Capture d’écran de l’Explorateur de tests montrant une hiérarchie de test dans un volet et le menu Regrouper par dans l’autre volet, avec les options Classe et État sélectionnées.

Groupes de l'explorateur de tests

Groupe Description
Durée Regroupe les tests par temps d’exécution : rapide, moyen, lent.
État Regroupe les tests par résultats d’exécution : tests échoués, tests ignorés, tests réussis, tests non exécutés.
Framework cible Regroupe les tests en fonction de l’infrastructure ciblée par leurs projets.
Espace de noms Regroupe les tests par l'espace de noms qui les contient.
Projet Regroupe les tests par le projet qui les contient.
Classe Regroupe les tests par la classe conteneur.

Caractéristiques

Une caractéristique est généralement une paire nom/valeur de catégorie, mais elle peut également être une seule catégorie. Les caractéristiques peuvent être affectées aux méthodes que l’infrastructure de test unitaire identifie comme méthodes de test.

Une infrastructure de test unitaire 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. L’infrastructure de test unitaire définit la syntaxe pour spécifier des catégories et des valeurs de caractéristiques.

Caractéristiques dans l’infrastructure de test unitaire Microsoft pour le code managé

Dans Microsoft Unit Testing Framework for Managed Code, vous définissez une paire nom/valeur de trait dans un attribut TestPropertyAttribute. L’infrastructure de test contient également ces caractéristiques prédéfinies :

Caractéristique Description
OwnerAttribute La 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.
PriorityAttribute La catégorie Priority est définie par l’infrastructure de test unitaire et vous oblige à fournir une valeur entière de la priorité.
TestCategoryAttribute L’attribut TestCategory vous permet de spécifier la catégorie d’un test unitaire.
TestPropertyAttribute L’attribut TestProperty vous permet de définir une paire de caractéristiques/valeur.

Caractéristiques dans l’infrastructure de test unitaire Microsoft pour C++

Consultez Utiliser Microsoft Unit Testing Framework pour C++ dans Visual Studio.

Créer des playlists personnalisées

Vous pouvez créer et enregistrer une liste de tests que vous souhaitez exécuter ou afficher en tant que groupe. Lorsque vous sélectionnez une playlist, les tests de la liste s’affichent sous un nouvel onglet Explorateur de tests. Vous pouvez ajouter un test à plusieurs playlists.

Pour créer une playlist :

  1. Choisissez un ou plusieurs tests dans l’Explorateur de tests.
  2. Cliquez avec le bouton droit sur le volet, pointez sur Ajouter à la playlist, puis sélectionnez Nouvelle playlist.

Capture d’écran montrant les sélections pour la création d’une playlist.

La playlist s’ouvre sous un nouvel onglet Explorateur de tests. Vous pouvez utiliser cette playlist une seule fois, puis l’ignorer. Vous pouvez également sélectionner le bouton Enregistrer dans la barre d’outils de la fenêtre de sélection, puis sélectionner un nom et un emplacement pour enregistrer la playlist.

Capture d’écran montrant une playlist ouverte sous un onglet Explorateur de tests distinct.

Pour ouvrir une playlist :

  1. Dans la barre d’outils de Visual Studio, sélectionnez l’icône de liste de lecture.
  2. Dans le menu, sélectionnez un fichier de playlist précédemment enregistré.

Pour modifier une playlist, utilisez l’une des options suivantes :

  • Cliquez avec le bouton droit sur n’importe quel test, puis utilisez les commandes de menu pour l’ajouter ou la supprimer d’une playlist.

  • Dans la barre d’outils, sélectionnez le bouton Modifier la playlist. Les cases à cocher qui s’affichent en regard de vos tests indiquent quels tests sont inclus et exclus dans la playlist. Modifiez les groupes comme vous le souhaitez. Cette fonctionnalité a démarré dans Visual Studio 2019 version 16.7.

    Capture d’écran montrant le bouton Modifier la sélection dans la barre d’outils.

Vous pouvez également cocher ou décocher les cases des groupes parents dans la hiérarchie. Cette action crée une playlist dynamique qui met à jour automatiquement la playlist basée sur les tests se trouvant dans ce groupe.

Par exemple, si vous cochez une case en regard d’une classe, tout test ajouté à partir de cette classe fait partie de cette playlist. Si vous supprimez un test de cette classe, il est supprimé de la playlist.

Vous pouvez en savoir plus sur les règles en enregistrant la playlist via le bouton Enregistrer dans la barre d’outils, puis en ouvrant le fichier .playlist fichier XML créé sur votre disque. Ce fichier répertorie toutes les règles et tests individuels qui composent une playlist.

Capture d’écran montrant le contenu d’un fichier XML de playlist.

Si vous souhaitez créer une playlist pour les caractéristiques, utilisez le format suivant pour l’infrastructure MSTest :

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Property Name="Trait" Value="SchemaUpdateBasic" />
  </Rule>
</Playlist>

Utilisez le format suivant pour l’infrastructure xUnit. Vérifiez qu’il existe un espace entre votre nom TestCategory et la valeur de [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
        </Rule>
    </Rule>
  </Rule>
</Playlist>

Vous pouvez créer et enregistrer une liste de tests que vous souhaitez exécuter ou afficher en tant que groupe. Lorsque vous sélectionnez une playlist, les tests de la liste s’affichent sous un nouvel onglet Explorateur de tests. Vous pouvez ajouter un test à plusieurs playlists.

Pour créer une playlist :

  1. Choisissez un ou plusieurs tests dans l’Explorateur de tests.
  2. Cliquez avec le bouton droit sur le volet, pointez sur Ajouter à la playlist, puis sélectionnez Nouvelle playlist.

Capture d’écran montrant les sélections pour la création d’une playlist.

La playlist s’ouvre sous un nouvel onglet Explorateur de tests. Vous pouvez utiliser cette playlist une seule fois, puis l’ignorer. Vous pouvez également sélectionner le bouton Enregistrer dans la barre d’outils de la fenêtre de sélection, puis sélectionner un nom et un emplacement pour enregistrer la playlist.

Capture d’écran montrant une playlist ouverte sous l’onglet Explorateur de tests distinct.

Pour ouvrir une playlist :

  1. Dans la barre d’outils de Visual Studio, sélectionnez l’icône de playlist.
  2. Dans le menu, sélectionnez un fichier de playlist précédemment enregistré.

Pour modifier une playlist, utilisez l’une des options suivantes :

  • Cliquez avec le bouton droit sur n’importe quel test, puis utilisez les commandes de menu pour l’ajouter ou la supprimer d’une playlist.

  • Dans la barre d’outils, sélectionnez le bouton Modifier la playlist. Les cases à cocher qui s’affichent en regard de vos tests indiquent quels tests sont inclus et exclus dans la playlist. Modifiez les groupes comme vous le souhaitez. Cette fonctionnalité a démarré dans Visual Studio 2019 version 16.7.

    Capture d’écran montrant le bouton Modifier la sélection dans la barre d’outils.

Vous pouvez également sélectionner ou effacer les cases des groupes parents dans la hiérarchie. Cette action crée une playlist dynamique qui se met à jour en fonction des tests du groupe.

Par exemple, si vous cochez une case en regard d’une classe, tout test ajouté à partir de cette classe fait partie de cette playlist. Si vous supprimez un test de cette classe, il est supprimé de la playlist.

Vous pouvez en savoir plus sur les règles en enregistrant la playlist via le bouton Enregistrer dans la barre d’outils, puis en ouvrant le fichier .playlist fichier XML créé sur votre disque. Ce fichier répertorie toutes les règles et tests individuels qui composent une playlist.

Capture d’écran montrant le contenu d’un fichier XML de playlist.

Si vous souhaitez créer une playlist pour les caractéristiques, utilisez le format suivant pour l’infrastructure MSTest :

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Property Name="Trait" Value="SchemaUpdateBasic" />
  </Rule>
</Playlist>

Utilisez le format suivant pour l’infrastructure xUnit. Vérifiez qu’il existe un espace entre votre nom TestCategory et la valeur de [Value].

<Playlist Version="2.0">
  <Rule Name="Includes" Match="Any">
    <Rule Match="All">
      <Property Name="Solution" />
        <Rule Match="Any">
            <Property Name="Trait" Value="TestCategory [Value]" />
        </Rule>
    </Rule>
  </Rule>
</Playlist>

Colonnes de l’Explorateur de tests

Les groupes sont également disponibles en tant que colonnes dans l’Explorateur de tests,notamment Caractéristiques, Arborescence des appels de procédure, Message d’erreuret Nom complet. La plupart des colonnes ne sont pas visibles par défaut. Vous pouvez personnaliser les colonnes qui s’affichent.

Capture d’écran de l’Explorateur de tests Visual Studio montrant un menu avec colonnes sélectionnées et un sous-menu avec durée, traits et message d’erreur sélectionnés.

Les colonnes peuvent être filtrées, réorganisés et triées :

  • Pour filtrer des caractéristiques spécifiques, sélectionnez l’icône de filtre en haut de la colonne Traits.

    Capture d’écran du filtre de colonne.

  • Pour modifier l’ordre des colonnes, sélectionnez un en-tête de colonne et faites-le glisser vers la gauche ou la droite.

  • Pour trier une colonne, sélectionnez l’en-tête de colonne. Toutes les colonnes ne peuvent pas être triées. Vous pouvez également trier par une colonne secondaire en maintenant la touche Maj enfoncée et en sélectionnant un en-tête de colonne supplémentaire.

    Capture d’écran d’un tri de colonne.

Colonnes de l’Explorateur de tests

Les groupes sont également disponibles en tant que colonnes dans l’Explorateur de tests,notamment Caractéristiques, Arborescence des appels de procédure, Message d’erreuret Nom complet. La plupart des colonnes ne sont pas visibles par défaut. Vous pouvez personnaliser les colonnes qui s’affichent.

Capture d’écran de l’Explorateur de tests Visual Studio montrant un menu avec colonnes sélectionnées et un sous-menu avec durée, traits et message d’erreur sélectionnés.

Les colonnes peuvent être filtrées, réorganisés et triées :

  • Pour filtrer des caractéristiques spécifiques, sélectionnez l’icône de filtre en haut de la colonne Traits.

    Capture d’écran du filtre de colonne.

  • Pour modifier l’ordre des colonnes, sélectionnez un en-tête de colonne et faites-le glisser vers la gauche ou la droite.

  • Pour trier une colonne, sélectionnez l’en-tête de colonne. Toutes les colonnes ne peuvent pas être triées. Vous pouvez également trier par une colonne secondaire en maintenant la touche Maj enfoncée et en sélectionnant un en-tête de colonne supplémentaire.

    Capture d’écran d’un tri de colonne.

Rechercher et filtrer la liste de tests

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

Lorsque vous tapez une chaîne dans l’Explorateur de tests zone de recherche et que vous sélectionnez la clé Entrée, la liste de tests est filtrée pour afficher uniquement les tests dont les noms complets contiennent la chaîne.

Pour filtrer selon un critère différent :

  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 les guillemets. Si vous souhaitez rechercher une correspondance exacte sur la chaîne au lieu d’une correspondance contenante, utilisez un signe égal (=) au lieu du signe deux-points (:)).

Capture d’écran des tests de filtre dans l’Explorateur de tests.

Capture d’écran des tests de filtre dans l’Explorateur de tests.

Remarque

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

Qualificateur Description
État Recherche les noms de catégorie de l'Explorateur de tests pour les correspondances : Échecs de tests, Tests ignorés, Tests réussis.
Caractéristiques Recherche à la fois les catégories de caractéristiques et les valeurs des correspondances. L’infrastructure de test unitaire définit la syntaxe pour spécifier des catégories et des valeurs de caractéristiques.
Nom qualifié complet Recherche des correspondances dans le nom complet des espaces de noms, des classes et des méthodes de test.
Projet Recherche les correspondances dans les noms des projets de test.
Cadre cible Recherche les correspondances dans les frameworks de test.
Espace de noms Recherche des correspondances dans les espaces de noms de test.
Classe Recherche les correspondances dans les noms des classes de test.

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, à l’exception des tests qui incluent également « PerfTest » dans leur nom.

Analyser la couverture du code de test unitaire

Vous pouvez déterminer la quantité de code de produit que vos tests unitaires testent réellement à l’aide de l’outil de couverture Visual Studio Code disponible dans Visual Studio Enterprise. Vous pouvez exécuter la couverture du 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 :

  • Cliquez avec le bouton droit dans l’Explorateur de tests, puis sélectionnez Analyser la couverture du code pour les tests sélectionnés.

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 Utiliser la couverture du code pour déterminer la quantité de code testé.

Tester les raccourcis

Vous pouvez exécuter des tests à partir de l’Explorateur de tests en effectuant les opérations suivantes :

  • Cliquez avec le bouton droit sur un test dans l’éditeur de code, puis sélectionnez Exécuter le test
  • Utilisation des raccourcis par défaut de l’Explorateur de tests dans Visual Studio

Certains raccourcis sont basés sur le contexte. Exécuter, déboguer ou profiler des tests ,, , selon l'emplacement de votre curseur dans l'éditeur de code. Si votre curseur se trouve à l’intérieur d’une méthode de test, cette méthode de test s’exécute. Si le curseur est au niveau de la classe, tous les tests de cette classe s’exécutent. Le même comportement est vrai pour le niveau d’espace de noms.

Commandes fréquentes Raccourcis clavier
TestExplorer.DebugAllTestsInContext Ctrl+R, Ctrl+T
TestExplorer.RunAllTestsInContext Ctrl+R, T
TestExplorer.RunAllTests Ctrl+R, A
TestExplorer.RepeatLastRun Ctrl+R, L

Remarque

Vous ne pouvez pas exécuter de test dans une classe abstraite, car les tests sont définis uniquement dans les classes abstraites et non instanciés. Pour exécuter des tests dans des classes abstraites, créez une classe qui dérive de la classe abstraite.

Configurer des signaux audio

L’Explorateur de tests peut jouer un de ces sons lorsqu’un test se termine :

  • Un son qui indique que l'exécution du test a réussi avec tous les tests passés
  • Un son qui indique que l’exécution du test s’est terminée avec au moins un test défaillant

Vous pouvez configurer ces sons dans la boîte de dialogue Audio Windows 11 par défaut . Cette fonctionnalité est disponible à partir de Visual Studio 2019 Update 16.9 Preview 3.

  1. Ouvrez la boîte de dialogue Son par défaut de Windows 11.
  2. Accédez à l’onglet Sons.
  3. Recherchez la catégorie Microsoft Visual Studio. Choisissez le son prédéfini Test Run Succeeded ou Test Run Failed, ou accédez à votre propre fichier audio.

Capture d’écran de la boîte de dialogue Son Windows 11.