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

Utilisez l’Explorateur de tests pour exécuter des tests unitaires à partir de projets de tests unitaires Visual Studio ou tiers. Vous pouvez également utiliser l’Explorateur de tests pour regrouper les tests par 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, dans Visual Studio Enterprise, pour analyser la couverture du code.

L’Explorateur de tests peut exécuter des tests à partir de plusieurs projets de tests dans une solution et à partir de classes de test qui font partie des projets de code en production. Les projets de test peuvent utiliser différentes infrastructures de tests unitaires. Quand le code 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. Les projets de code C/C++ natifs doivent être testés à l'aide d'une infrastructure de tests unitaires 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.

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 frameworks de tests unitaires tiers, consultez Installer des frameworks de tests unitaires tiers.

Exécuter des tests dans l’explorateur de tests

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 Explorateur de tests (ou appuyez sur Control + E, T).

Test Explorer

Test Explorer

Pendant que vous exécutez, écrivez et réexécutez vos tests, l’Explorateur de tests affiche les résultats en les regroupant par défaut selon les catégories suivantes : Projet, Espace de noms et Classe. Vous pouvez changer 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.

Run tests from the Test Explorer toolbar

Run tests from the Test Explorer toolbar

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 d’une solution, choisissez l’icône Exécuter tout (ou appuyez sur Ctrl + R, V).

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

  • Sélectionnez les différents tests à exécuter, ouvrez le menu contextuel (clic droit) de l’un d’entre eux, puis choisissez Exécuter les tests sélectionnés (ou appuyez sur Ctrl + R, T).

  • 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 dans le menu Paramètres de la barre d’outils. Cela peut réduire sensiblement le temps nécessaire pour exécuter tous les tests.

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

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

Afficher les résultats des tests

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 ou sur le côté de l’Explorateur de tests affiche un récapitulatif 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.

Test execution details

Test execution details

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.

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 le test dans le menu contextuel (clic droit) (ou appuyez sur F12).

Regrouper 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.

Regrouper des tests dans la liste de tests

L’Explorateur de tests vous permet de regrouper vos tests au sein d’une hiérarchie. Le regroupement correspondant à la hiérarchie par défaut est : Projet, Espace de noms, puis Classe. Pour changer la façon dont les tests sont organisés, choisissez le bouton Regrouper parTest Explorer group button, puis sélectionnez un nouveau critère de regroupement.

Group tests by category in Test Explorer

Vous pouvez définir vos propres niveaux de hiérarchie et effectuer un regroupement par État, puis par Classe, par exemple, en sélectionnant les options Regrouper par dans l’ordre de votre choix.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

L’Explorateur de tests vous permet de regrouper vos tests au sein d’une hiérarchie. Le regroupement correspondant à la hiérarchie par défaut est : Projet, Espace de noms, puis Classe. Pour changer la façon dont les tests sont organisés, choisissez le bouton Regrouper parTest Explorer group button, puis sélectionnez un nouveau critère de regroupement.

Group tests by category in Test Explorer

Vous pouvez définir vos propres niveaux de hiérarchie et effectuer un regroupement par État, puis par Classe, par exemple, en sélectionnant les options Regrouper par dans l’ordre de votre choix.

Screenshot of the Visual Studio Test Explorer showing a test hierarchy in one pane and the Group By menu in the other with the Class and State options checked.

Groupes de l'explorateur de tests

Groupe Description
Durée Regroupe les tests selon la durée d’exécution : Rapide, Moyenneet Lente.
State Regroupe les tests selon les résultats de l’exécution : Échecs de tests, Tests ignorés, Tests réussis, Non exécutés.
Framework cible Regroupe les tests en fonction du framework ciblé par leurs projets
Espace de noms Regroupe les tests en fonction de l’espace de noms conteneur.
Projet Regroupe les tests en fonction du projet conteneur.
Classe Regroupe les tests en fonction de la classe conteneur.

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. Le framework de tests contient également les caractéristiques prédéfinies suivantes :

Caractéristique Description
OwnerAttribute La catégorie Owner est définie par le framework de tests unitaires et vous demande de fournir une valeur de chaîne du propriétaire.
PriorityAttribute La catégorie Priority est définie par le framework de tests unitaires et vous demande de 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 la paire catégorie/valeur de caractéristique.

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

Consultez Guide pratique pour utiliser le framework de tests unitaires Microsoft pour C++.

Créer des sélections personnalisées

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

Pour créer une sélection, sélectionnez un ou plusieurs tests dans l'Explorateur de tests. Dans le menu contextuel, choisissez Ajouter à la playlist>Nouvelle playlist.

Create a playlist

La playlist s’ouvre sous un nouvel onglet de l’Explorateur de tests. Vous pouvez utiliser cette playlist une seule fois, puis l’abandonner si vous le souhaitez. Sinon, vous pouvez cliquer dans la barre d’outils de la fenêtre de playlist sur le bouton Enregistrer, puis sélectionner le nom et l’emplacement d’enregistrement de la playlist.

Playlist opens in separate test explorer tab

Pour créer une sélection, sélectionnez un ou plusieurs tests dans l'Explorateur de tests. Cliquez avec le bouton droit, puis choisissez Ajouter à la playlist>Nouvelle playlist.

Pour ouvrir une playlist, choisissez l’icône de playlist dans la barre d’outils de Visual Studio, puis sélectionnez dans le menu un fichier de playlist enregistré.

Pour modifier une playlist, vous pouvez cliquer avec le bouton droit sur n’importe quel test et utiliser les options de menu pour l’ajouter ou le supprimer d’une playlist.

À partir de Visual Studio 2019 version 16.7, vous pouvez choisir le bouton Modifier dans la barre d’outils. Des cases à cocher s’affichent en regard de vos tests montrant quels tests sont inclus et exclus dans la playlist. Modifiez les groupes selon vos besoins.

Edit Playlist button

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 toujours à jour la playlist en fonction des tests qui se trouvent dans ce groupe. Par exemple, si vous placez une coche 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 apprendre plus sur les règles en enregistrant la playlist avec le bouton Enregistrer dans la barre d’outils et en ouvrant le fichier .playlist créé sur votre disque. Ce fichier répertorie l’ensemble des règles et tests individuels qui composent une playlist.

Playlist xml file

Si vous souhaitez créer une playlist pour les caractéristiques, utilisez le format suivant pour MSTest.

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

Utilisez le format suivant pour xUnit. Vérifiez qu’il y a un espace entre votre nom TestCategory et le [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 visualiser en tant que groupe. Lorsque vous sélectionnez une playlist, les tests de la liste s’affichent dans un nouvel onglet de l’Explorateur de tests. Vous pouvez ajouter un test à plusieurs playlists.

Pour créer une sélection, sélectionnez un ou plusieurs tests dans l'Explorateur de tests. Dans le menu contextuel, choisissez Ajouter à la playlist>Nouvelle playlist.

Create a playlist

La playlist s’ouvre sous un nouvel onglet de l’Explorateur de tests. Vous pouvez utiliser cette playlist une seule fois, puis l’abandonner si vous le souhaitez. Sinon, vous pouvez cliquer dans la barre d’outils de la fenêtre de playlist sur le bouton Enregistrer, puis sélectionner le nom et l’emplacement d’enregistrement de la playlist.

Playlist opens in separate test explorer tab

Pour créer une sélection, sélectionnez un ou plusieurs tests dans l'Explorateur de tests. Cliquez avec le bouton droit, puis choisissez Ajouter à la playlist>Nouvelle playlist.

Pour ouvrir une playlist, choisissez l’icône de playlist dans la barre d’outils de Visual Studio, puis sélectionnez dans le menu un fichier de playlist enregistré.

Pour modifier une playlist, vous pouvez cliquer avec le bouton droit sur n’importe quel test et utiliser les options de menu pour l’ajouter ou le supprimer d’une playlist.

À partir de Visual Studio 2019 version 16.7, vous pouvez choisir le bouton Modifier dans la barre d’outils. Des cases à cocher s’affichent en regard de vos tests montrant quels tests sont inclus et exclus dans la playlist. Modifiez les groupes selon vos besoins.

Edit Playlist button

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 toujours à jour la playlist en fonction des tests qui se trouvent dans ce groupe. Par exemple, si vous placez une coche 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 apprendre plus sur les règles en enregistrant la playlist avec le bouton Enregistrer dans la barre d’outils et en ouvrant le fichier .playlist créé sur votre disque. Ce fichier répertorie l’ensemble des règles et tests individuels qui composent une playlist.

Playlist xml file

Si vous souhaitez créer une playlist pour les caractéristiques, utilisez le format suivant pour MSTest.

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

Utilisez le format suivant pour xUnit. Vérifiez qu’il y a un espace entre votre nom TestCategory et le [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 de l’Explorateur de tests, notamment Caractéristiques, Arborescence des appels de procédure, Message d’erreur et Nom complet. La plupart des colonnes ne sont pas visibles par défaut. Vous pouvez personnaliser les colonnes que vous voyez et leur ordre d’apparition.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrer, trier et réorganiser les colonnes de test

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

  • Pour filtrer des caractéristiques spécifiques, cliquez sur l’icône de filtre en haut de la colonne Caractéristiques.

    Column filter

  • Pour changer l’ordre des colonnes, cliquez sur un en-tête de colonne, puis faites-le glisser vers la gauche ou la droite.

  • Pour trier une colonne, cliquez sur son en-tête. Toutes les colonnes ne peuvent pas être triées. Vous pouvez également effectuer un tri sur une colonne secondaire en maintenant la touche Maj enfoncée et en cliquant sur un en-tête de colonne supplémentaire.

    Column sort

Colonnes de l’Explorateur de tests

Les groupes sont également disponibles en tant que colonnes de l’Explorateur de tests, notamment Caractéristiques, Arborescence des appels de procédure, Message d’erreur et Nom complet. La plupart des colonnes ne sont pas visibles par défaut. Vous pouvez personnaliser les colonnes que vous voyez et leur ordre d’apparition.

Screenshot of the Visual Studio Test Explorer showing a menu with Columns selected and a sub-menu with Duration, Traits, and Error Message selected.

Filtrer, trier et réorganiser les colonnes de test

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

  • Pour filtrer des caractéristiques spécifiques, cliquez sur l’icône de filtre en haut de la colonne Caractéristiques.

    Column filter

  • Pour changer l’ordre des colonnes, cliquez sur un en-tête de colonne, puis faites-le glisser vers la gauche ou la droite.

  • Pour trier une colonne, cliquez sur son en-tête. Toutes les colonnes ne peuvent pas être triées. Vous pouvez également effectuer un tri sur une colonne secondaire en maintenant la touche Maj enfoncée et en cliquant sur un en-tête de colonne supplémentaire.

    Column sort

Rechercher et filtrer la liste de tests

Vous pouvez également utiliser les filtres de recherche de l’Explorateur de tests pour limiter les méthodes de test des projets que vous visualisez 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. Si vous voulez rechercher une correspondance exacte sur la chaîne au lieu d’une correspondance de contenance, utilisez un signe égal (=) au lieu du signe deux-points (:).

Filter tests in Test Explorer

Filter tests in Test Explorer

Note

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

Qualificateur Description
State 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 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.
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 noms de projet de test pour les correspondances.
Framework cible Recherche des correspondances dans les frameworks de test.
Espace de noms Recherche des correspondances dans les espaces de noms de test.
Classe Recherche des 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, sauf ceux qui incluent également « PerfTest » dans leur nom.

Analyser la couverture du code de test unitaire

Vous pouvez déterminer la quantité de code produit qui est réellement testée par vos tests unitaires à l'aide de l'outil de couverture de code Visual Studio disponible dans l’édition Visual Studio Enterprise. 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 :

  • Cliquez avec le bouton droit sur 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é.

Raccourcis pour les tests

Vous pouvez exécuter les tests à partir de l’Explorateur de tests en cliquant avec le bouton droit dans l’éditeur de code sur un test et en sélectionnant Exécuter le test, ou en utilisant les raccourcis de l’Explorateur de tests par défaut dans Visual Studio. Certains raccourcis dépendent du contexte. Cela signifie qu’ils exécutent ou déboguent ou profilent les tests en fonction de l’endroit où se trouve votre curseur dans l’éditeur de code. Si le curseur est à 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. C’est pareil 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

Notes

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

Tester l’indicateur audio

L’Explorateur de tests peut émettre un signal sonore lorsqu’une série de tests est terminée. Il y a deux sons, un pour indiquer que la série s’est terminée et que tous les tests ont réussi, et un second pour indiquer que la série s’est terminée et qu’au moins un test a échoué. Vous pouvez configurer ces sons dans la boîte de dialogue audio par défaut de Windows 11. Cette fonctionnalité est disponible à partir de Visual Studio 2019 Update 16.9 Preview 3.

  1. Ouvrez la boîte de dialogue audio par défaut de Windows 11.
  2. Accédez à l’onglet Sons.
  3. Recherchez la catégorie Microsoft Visual Studio. Choisissez les sons Série de tests réussie ou Échec de la série de tests pour sélectionner les sons prédéfinis ou accéder à votre propre fichier audio.
    Windows 11 sound dialog