FAQ concernant l’Explorateur de tests Visual Studio

Découverte de tests dynamique

L’Explorateur de tests ne découvre pas mes tests qui sont définis dynamiquement (Par exemple, théories, adaptateurs personnalisés, caractéristiques personnalisées, #ifdefs, etc.) Comment puis-je découvrir ces tests ?

Générez votre projet pour exécuter la découverte basée sur les assemblys.

La découverte de tests en temps réel correspond à la découverte de tests basée sur les sources. Les tests qui utilisent des théories, des adaptateurs personnalisés, des caractéristiques personnalisées, des instructions #ifdef, etc., ne peuvent pas être découverts, car ils sont définis au moment de l’exécution. Une build est nécessaire pour trouver ces tests avec précision. Dans Visual Studio 2017 version 15.6 et ultérieure, la découverte basée sur les assemblys (le découvreur traditionnel) s’exécute seulement après les builds. En d’autres termes, la découverte de tests en temps réel trouve autant de tests que possible au fur et à mesure que vous effectuez des modifications, et la découverte basée sur les assemblys permet de faire apparaître les tests définis dynamiquement après une build. La découverte de tests en temps réel améliore la réactivité, tout en vous permettant d’obtenir des résultats complets et précis après une build.

Symbole « + » (plus) de l’Explorateur de tests

Que signifie le signe plus (+) qui apparaît sur la ligne supérieure l’Explorateur de tests ?

Le signe plus (+) indique que d’autres tests peuvent être découverts après une build quand la découverte basée sur les assemblys s’exécute. Ce symbole apparaît si des tests définis dynamiquement sont détectés dans votre projet.

Plus symbol summary line

Découverte de tests en temps réel

Les tests s’affichent désormais automatiquement dans l’Explorateur de tests quand j’écris, sans que j’aie à générer mon projet. Qu’est ce qui a changé ?

Cette fonctionnalité s’appelle la découverte de tests en temps réel. Elle utilise un analyseur Roslyn pour trouver les tests et remplir l’Explorateur de tests en temps réel, sans que vous ayez à générer votre projet. Pour plus d’informations sur le comportement de la découverte de tests pour les tests définis dynamiquement, par exemple les théories ou les caractéristiques personnalisées, consultez Découverte de tests dynamique.

Compatibilité de la découverte de tests en temps réel

Quels langages et quelles infrastructures de test peuvent utiliser la découverte de tests en temps réel ?

La découverte de tests en temps réel fonctionne uniquement avec les langages managés (C# et Visual Basic), car elle utilise le compilateur Roslyn. Pour le moment, la découverte de tests en temps réel fonctionne uniquement avec les frameworks xUnit, NUnit et MSTest.

Journaux de l’Explorateur de tests

Comment activer les journaux pour l’Explorateur de tests ?

Accédez à Outils>Options>Test et recherchez la section Journalisation.

Découverte de tests UWP

Pourquoi dois-je d’abord déployer mon application pour que mes tests soient découverts dans des projets UWP ?

Les tests UWP ciblent un runtime différent quand l’application est déployée. Pour trouver de manière précise les tests pour les projets UWP, vous devez donc non seulement générer votre projet, mais aussi le déployer.

Tri dans l’Explorateur de tests

Comment fonctionne le tri des résultats de tests dans l’affichage des hiérarchies ?

L’affichage des hiérarchies trie les tests par ordre alphabétique et non par résultat. Les paramètres de regroupement précédents permettent de trier les résultats des tests par résultat, puis par ordre alphabétique. Vous pouvez toujours activer le tri par résultat en faisant un clic droit sur l’en-tête de colonne dans l’Explorateur de tests, en activant la colonne État, puis en cliquant sur l’en-tête de colonne État pour appliquer le tri sur cette colonne. Vous pouvez fournir des commentaires sur la conception dans ce problème GitHub.

Vue de la hiérarchie de l’Explorateur de tests

La vue de la hiérarchie inclut différentes icônes (réussite, échec, ignoré et non exécuté) en regard des regroupements parent-nœud. Que signifient ces icônes ?

Les icônes en regard des regroupements Projet, Espace de noms et Classe indiquent l’état des tests dans le regroupement. Consultez le tableau suivant.

Test Explorer Hierarchy Icons

Rechercher par chemin d’accès du fichier

Il n’y a plus de filtre « Chemin d’accès du fichier » dans la zone de recherche de l’explorateur de tests.

Le filtre de chemin d’accès du fichier dans la zone de recherche de l’Explorateur de tests a été supprimé dans Visual Studio 2017, version 15.7. Cette fonctionnalité étant très peu utilisée, l’Explorateur de tests peut récupérer des méthodes de test plus rapidement en la laissant de côté. Si ce changement interrompt votre flux de développement, faites-le nous savoir en envoyant vos commentaires à la Communauté des développeurs.

Supprimer des interfaces non documentées

Certaines API liées aux tests ne sont plus présentes dans Visual Studio 2019. Qu’est ce qui a changé ?

Dans Visual Studio 2019, certaines API de fenêtre de test, qui étaient auparavant dites publiques mais qui n’ont jamais été officiellement documentées, seront retirées. Elles avaient été marquées comme étant « déconseillées » dans Visual Studio 2017 pour avertir à l’avance les personnes chargées de la maintenance des extensions. À notre connaissance, très peu d’extensions avaient trouvé ces API et en dépendaient. Il s’agit notamment de IGroupByProvider, IGroupByProvider<T>, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken et SearchFilterTokenType. Si ce changement affecte votre extension, faites-le nous savoir en entrant un bogue auprès de la Communauté des développeurs.

Référence NuGet sur l’adaptateur de test

Dans Visual Studio 2017 version 15.8, mes tests sont détectés, mais ne s’exécutent pas.

Tous les projets de test doivent inclure leur référence d’adaptateur de test .NET NuGet dans leur fichier .csproj. Dans le cas contraire, la sortie de test suivante s’affiche dans le projet si la découverte par une extension de l’adaptateur de test est lancée après une build ou si l’utilisateur tente d’exécuter les tests sélectionnés :

Le projet de test{} ne référence aucun adaptateur .NET NuGet. La découverte ou l’exécution de tests risquent de ne pas fonctionner pour ce projet. Il est recommandé de référencer les adaptateurs de test NuGet dans chaque projet de test .NET de la solution.

Au lieu d’utiliser des extensions d’adaptateur de test, les projets doivent utiliser les packages NuGet de l’adaptateur de test. Cette exigence améliore considérablement les performances et entraîne moins de problèmes avec l’intégration continue. En savoir plus sur la dépréciation de l’Extension de l’adaptateur de Test .NET dans les notes de version.

TestContainer UWP est introuvable

Mes tests UWP ne sont plus exécutés dans Visual Studio 2017 versions 15.7 et ultérieures.

Les projets de test UWP récents spécifient une propriété de génération de plateforme de test qui permet de meilleures performances pour identifier les applications de test. Si vous avez un projet de test UWP qui a été initialisé avant Visual Studio version 15.7, vous pouvez voir l’erreur suivante dans Sortie>Tests :

System.AggregateException : une ou plusieurs erreurs se sont produites. ---> System.InvalidOperationException : Le testContainer suivant n’a pas été trouvé {} sur Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()

Pour résoudre ce problème :

  • Mettez à jour votre propriété de génération de projet de test à l’aide du code suivant :
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
  • Mettez à jour la version du kit SDK TestPlatform à l’aide du code suivant :
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />

Utilisation des fonctionnalités d’évaluation

Dans Visual Studio 2019, vous pouvez choisir les fonctionnalités en préversion dans Outils > Options > Environnement > Fonctionnalités d’évaluation.