Exécution de tests unitaires avec Test Explorer

Utilisez l'Explorateur de tests pour exécuter des tests unitaires à partir de Visual Studio ou de projets de tests unitaires tiers, grouper 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.

Sommaire

Infrastructures de tests unitaires et projets de tests

Exécuter des tests dans l'Explorateur de tests

Afficher les résultats des tests

Regrouper et filtrer la liste de tests

Créez des sélections personnalisées

Déboguez et analysez les tests unitaires

Ressources externes

Infrastructures de tests unitaires et projets de tests

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

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

Back to topSommaire

Exécuter des tests dans l'Explorateur de tests

Exécuter les tests**|**Exécutez des tests après chaque build

Lorsque 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, choisissez Fenêtres, puis choisissez Explorateur de tests.

Unit Test Explorer

Lorsque vous exécutez, écrivez ou réexécutez les tests, l'explorateur de tests affiche les résultats dans les groupes par défaut Tests échoués, 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.

Run tests from the Test Explorer toolbar

Back to topSommaire

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 Exécuter tout.

  • Pour exécuter tous les tests dans un groupe par défaut, choisissez Exécuter… puis sélectionnez 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.

La barre réussite/échec en haut de la fenêtre de l'Explorateur de tests s'anime pendant l'exécution des tests.À la conclusion 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é.

Back to topSommaire

Exécuter les tests après chaque build

Mise en gardeAttention

L'exécution de tests unitaires après chaque build est prise en charge dans les éditions Visual Studio Ultimate et Visual Studio Premium.

Run after build

Pour exécuter vos tests unitaires après chaque build locale, choisissez Test dans le menu standard, puis choisissez Exécuter des tests après génération dans la barre d'outils de l'explorateur de tests.

Back to topSommaire

Afficher les résultats des tests

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

Lorsque vous exécutez, écrivez ou réexécutez les tests, l'explorateur de tests affiche les résultats dans les groupes Tests échoués, Tests réussis, Tests ignorés et Tests non exécutés.Le volet d'informations au 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 informations relatives à un test, double-cliquez sur ce dernier.

Test execution details

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

  • Le nom du fichier source et le 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, la volet d'informations s'affiche également :

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

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

Back to topSommaire

Affichez 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).

Back to topSommaire

Regrouper et filtrer la liste de tests

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

L'Explorateur de tests vous permet de grouper vos tests en catégories prédéfinies.La plupart des infrastructures 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 de tests en mettant en correspondance les chaînes avec les propriétés de test.

Regroupement de la liste de tests

Pour modifier la façon dont les tests sont organisés, cliquez sur la flèche vers le bas en regard du bouton Grouper parTest Explorer group button et sélectionnez un nouveau critère de regroupement.

Group tests by category in Test Explorer

Groupes de l'explorateur de tests

Regrouper

Description

Durée

Les groupes testent par durée d'exécution : Rapide, Moyenne, puis Lente.

Résultat

Tests de groupes par résultats d'exécution : Échecs de tests, Tests ignorés, Tests réussis.

Caractéristiques

Les groupes effectuent des tests par paires de catégories/valeurs que vous définissez.La syntaxe permettant de spécifier les catégories et les valeurs de caractéristiques est définie par l'infrastructure de tests unitaires.

Projet

Les groupes testent le nom des projets.

Back to topSommaire

Regrouper par spécifications

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 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.La syntaxe permettant de spécifier les catégories et les valeurs de 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 test unitaire Microsoft pour les applications managées, définissez une paire nom/valeur de fonctionnalités dans un attribut TestPropertyAttribute.L'infrastructure de test contient également les caractéristiques prédéfinies suivantes :

Caractéristique

Description

OwnerAttribute

La catégorie Propriétaire est définie par l'infrastructure de tests unitaires et nécessite que vous fournissiez la valeur de chaîne du propriétaire.

PriorityAttribute

La catégorie Priorité est définie par l'infrastructure de tests unitaires et nécessite que vous fournissiez la valeur entière de la priorité.

TestCategoryAttribute

L'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 de TestProperty.

TestPropertyAttribute

L'attribut TestProperty vous permet de définir la paire catégorie/valeur de caractéristiques.

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 fonctionnalité 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++

Macro

Description

TEST_METHOD_ATTRIBUTE(attributeName, attributeValue)

Utilisez la macro TEST_METHOD_ATTRIBUTE pour définir une caractéristique.

TEST_OWNER(ownerAlias)

Utilisez la caractéristique Propriétaire prédéfinie pour spécifier le propriétaire de la méthode de test.

TEST_PRIORITY(priority)

Utilisez la caractéristique Priorité prédéfinie pour assigner des priorités relatives à vos méthodes de test.

Back to topSommaire

Recherchez et repositionnez la liste de tests

Vous pouvez utiliser les filtres 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 la zone de recherche de l'Explorateur de tests et sélectionnez 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.

Filter tests in Test Explorer

[!REMARQUE]

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

Qualificateur

Description

Caractéristique

Recherche la catégorie et la valeur de fonctionnalités pour les correspondances.La syntaxe permettant de spécifier les catégories et les valeurs de caractéristiques est définie par l'infrastructure de tests unitaires.

Projet

Recherche les noms de projet de test pour des correspondances.

Message d'erreur

Recherche les messages d'erreur définis par l'utilisateur retournés par des assertions pour les correspondances.

Chemin d'accès aux fichiers

Recherche le nom de fichier complet des fichiers sources de test pour des correspondances.

Nom complet

Recherche le nom de fichier complet des espaces de noms, des classes et des méthodes de test pour les correspondances.

Sortie

Recherche 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ésultat

Recherche 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 « MaClasse » dans leur nom sauf ces tests qui incluent également « PerfTest » dans leur nom.

Back to topSommaire

Créer des sélections personnalisées

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

Choose a playlist

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 de création d'une liste de sélection.

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

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

Back to topSommaire

Déboguer et analyser les tests unitaires

Déboguer les tests unitaires**|Diagnostiquez les problèmes de performances de méthode de test|**Analysez 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 guide de façon transparente dans les deux sens entre les tests unitaires et le projet de 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.

    [!REMARQUE]

    Comme les méthodes de test peuvent s'exécuter dans n'importe quel ordre, définissez des 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.

Back to topSommaire

Diagnostiquer les problèmes de performances des méthodes 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 Analyse des performances de l'application à l'aide des outils de profilage.

Analyser la couverture du code de test unitaire

[!REMARQUE]

La couverture du code de test unitaire est uniquement disponible dans Visual Studio Ultimate et Visual Studio Premium.

Vous pouvez déterminer la proportion de votre code du produit réellement testé par vos tests unitaires à l'aide de l'outil de couverture du code Visual Studio.Vous pouvez exécuter la couverture du code sur des 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 de Visual Studio, puis choisissez 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 de blocs de code du produit 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é.

Back to topSommaire

Ressources externes

Aide

Test de la livraison continue avec Visual Studio 2012 - Chapitre 2 : Tests unitaires : tests

Voir aussi

Concepts

Vérification du code à l'aide de tests unitaires

Comment : exécuter un test unitaire en tant que processus 64 bits