Partager via


Dépannage dans Test Edition

Mise à jour : novembre 2007

Lorsque vous testez votre code, certaines conditions peuvent générer des erreurs ou des avertissements, ou même entraîner l'échec du test. Cette rubrique décrit quelques-unes de ces conditions, ainsi que les étapes que vous pouvez suivre pour les résoudre.

Dépannage de l'exécution de tests

Les conditions qui peuvent empêcher des tests de s'exécuter correspondent généralement à un échec du déploiement du fichier test ou d'autres fichiers requis pour l'exécution du test.

  • Tests distants. Pour les tests distants, les problèmes de communication avec l'ordinateur distant peuvent également être en cause. Ces erreurs et d'autres au niveau du test et de son exécution sont décrites dans Dépannage de l'exécution de tests.

  • Tests unitaires ASP.NET. Si votre test unitaire ASP.NET s'exécute dans le processus IIS, vous pouvez choisir d'exécuter le processus ASP.NET sous forme d'utilisateur non défini par défaut, avec une identité de processus différente, pour des raisons de sécurité. Dans ce cas, l'exécution du test peut échouer. Pour plus d'informations, consultez Vue d'ensemble des tests unitaires ASP.NET.

  • Déploiement de fichiers avec vos tests. Les erreurs de déploiement s'affichent souvent dans la page Détails de la série de tests et non sur la page Détails des résultats du test individuel qui a échoué. Par conséquent, il peut être difficile de déterminer la raison de l'échec d'un test individuel. Pour plus d'informations, consultez la section « Dépannage d'un déploiement de tests » dans Vue d'ensemble du déploiement de test.

  • Dépannage des problèmes liés aux tests Web. Différentes erreurs peuvent se produire lorsque vous exécutez des tests Web. Elles peuvent être provoquées par un attribut de liaison de données manquant, des problèmes avec les paramètres de sécurité ou une tentative d'accéder à un site Web à l'extérieur de votre pare-feu. Pour plus d'informations, consultez Dépannage des tests Web.

  • Dépannage des problèmes liés aux tests. Différentes erreurs peuvent se produire lorsque vous exécutez des tests. Elles peuvent être dues à des problèmes liés à la base de données du test de charge, aux compteurs définis sur votre test de charge, à une plateforme de test mal configurée ou à un des tests contenus dans le test de charge. Pour plus d'informations, consultez Dépannage des tests de charge.

  • Dépannage des problèmes liés aux tests unitaires pilotés par des données. Vous pouvez rencontrer des problèmes de connexion, d'authentification, de déploiement ou autre, lorsque vous exécutez des tests unitaires pilotés par les données. Utilisez les informations présentées dans Dépannage des tests unitaires pilotés par les données pour résoudre ces problèmes.

Nouvelles signatures d'assemblys avec nom fort

Lorsque vous exécutez des tests unitaires, vous testez du code dans un fichier binaire. Vous pouvez rassembler les informations de couverture du code lorsque ces tests s'exécutent en instrumentant ce fichier binaire ; consultez Comment : obtenir des données de couverture du code. Le processus d'instrumentation ajoute du code qui génère des informations de couverture du code dans le fichier binaire.

Si le fichier binaire que vous testez est un assembly avec nom fort, la modification de code provoquée par l'instrumentation invalide sa signature. Visual Studio essaie automatiquement de signer à nouveau l'assembly immédiatement après l'étape d'instrumentation. Pour plus d'informations sur les assemblys avec nom fort, consultez Assemblys avec nom fort.

Différentes conditions peuvent entraîner l'échec de la nouvelle signature. Pour plus d'informations sur le contournement de ces conditions, consultez Instrumentation et nouvelle signature d'assemblys.

Données de couverture du code et VSPerfMon.exe

Si vous exécutez VSPerfMon.exe tout en exécutant des tests pour lesquels vous rassemblez des données de couverture du code rassemblement, les événements suivants se produiront :

  • Si vous exécutez VSPerfMon avec l'option TRACE ou SAMPLE, la série de tests qui s'exécute simultanément échoue et une erreur est rapportée sur la page Détails de la série de tests.

  • Si vous exécutez VSPerfMon.exe avec l'option COVERAGE, le processus VSPerfMon.exe est arrêté.

Dans les deux cas, la solution de contournement consiste à s'abstenir d'exécuter VSPerfMon.exe et simultanément d'exécuter des tests dans lesquels vous rassemblez des données de couverture du code. Pour plus d'informations sur l'outil VSPerfMon.exe, consultez VSPerfMon.

Quand cela peut-il arriver ?

Les cas les plus courants d'exécution de VSPerfMon sont les suivants :

  • Vous avez démarré une session de profilage, peut-être dans une instance de Visual Studio autre que l'instance dans laquelle vous effectuez des tests.

  • Vous rassemblez des données de couverture du code ou de profilage en exécutant VSPerfMon.exe directement ou, comme cela est plus fréquent, en utilisant le wrapper VSPerfCmd.exe.

Les données de couverture du code n'apparaissent pas correctement

Si vous avez demandé que les données de couverture du code soient rassemblées pour vos tests mais qu'elles n'apparaissent pas, ou qu'elles diffèrent de vos attentes, l'une des situations décrite ici peut s'appliquer :

  • Aucune donnée de couverture du code n'apparaît. Pendant l'exécution du test, certains fichiers binaires, tels que les DLL COM, sont chargés à partir de leur emplacement d'origine et non du répertoire de déploiement des tests. Ces fichiers binaires doivent être instrumentés en place ; sinon, bien que l'exécution du test réussisse et qu'aucun avertissement de niveau d'exécution ne soit généré, les données de couverture du code ne sont pas rassemblées. Pour plus d'informations, consultez Choix du dossier d'instrumentation.

  • La mise en surbrillance de la couverture du code n'apparaît pas. Lorsque vous exécutez des tests, rassemblez des données de couverture du code, puis consultez les résultats des tests, Visual Studio indique le code qui a été testé dans la série de tests en mettant en surbrillance le code dans son fichier de code source. Vous pouvez choisir les couleurs qui indiquent quel code a été couvert, non couvert et partiellement couvert. Si une partie ou toute cette mise en surbrillance n'apparaît pas, assurez-vous que les couleurs choisies diffèrent de la couleur d'arrière-plan de votre fichier de code source. Pour plus d'informations sur le choix de couleurs pour la mise en surbrillance, consultez la section « Modification de l'affichage des données de couverture du code » dans Comment : obtenir des données de couverture du code.

  • Les données de couverture du code n'ont pas été correctement fusionnées. Vous pouvez fusionner des résultats qui incluent une ou plusieurs séries de tests ASP.NET, mais la fenêtre Résultats de la couverture du code affiche les données ASP.NET sous Résultats fusionnés dans des nœuds distincts, et non dans un nœud seul et fusionné. Pour plus d'informations, consultez Utilisation des données de couverture du code fusionnées.

  • Certaines données de couverture du code fusionnées ne sont pas affichées. Après avoir fusionné les données de couverture du code, vous pouvez les exporter sur disque sous forme de fichier XML. Si vous réimportez ce fichier, puis le fusionnez avec les données supplémentaires, certaines statistiques ne sont pas affichées. Pour plus d'informations, consultez Utilisation des données de couverture du code fusionnées.

  • Les données de couverture du code ne s'importent pas. Visual Studio doit être capable de localiser certains fichiers sur le disque pour pouvoir importer les données de couverture du code. Pour plus d'informations, consultez Utilisation des données de couverture du code fusionnées.

  • Les fichiers binaires instrumentés sont remplacés. Vous essayez de rassembler des données de couverture du code à partir d'un programme que vous exécutez pendant un test manuel. Si vous utilisez CTRL+F5 pour démarrer ce programme, l'action CTRL+F5 provoque la reconstruction du fichier binaire du programme. Cela remplace le fichier binaire instrumenté, ce qui signifie qu'aucune donnée de couverture du code ne peut être rassemblée.

Pour des informations générales sur la collecte de données de couverture du code, consultez Comment : obtenir des données de couverture du code.

Problèmes de performances lors de l'ajout de méthodes de test

Lorsque vous ajoutez une nouvelle méthode de test, le traitement en arrière-plan est effectué pour ajouter celle-ci dans la fenêtre Affichage de tests et dans l'Explorateur de tests. Par conséquent, vous pouvez la voir immédiatement. Si vous avez plusieurs méthodes de test dans une classe de test unique ou dans l'ensemble du projet, vous pouvez rencontrer un problème de performances dû à ce traitement automatique lorsque vous ajoutez une nouvelle méthode de test dans cette classe de test.

Si vous rencontrez ce problème de performances, vous avez le choix entre trois solutions :

  • Vous pouvez fractionner votre classe de test en des classes partielles et répartir vos méthodes de test entre elles. Vous réduisez ainsi le nombre de méthodes dans une classe de test unique et améliorez les performances à l'ajout d'une méthode de test.

  • Vous pouvez créer un projet de test, y déplacer quelques classes de test, puis supprimez celles-ci du projet de test d'origine. Vous réduisez ainsi le nombre de méthodes de test dans un assembly et améliorez vos performances.

  • Vous avez la possibilité de désactiver le traitement en arrière-plan qui ajoute les méthodes de test dans la fenêtre Affichage de tests et dans l'Explorateur de tests. Vous améliorez ainsi les performances à l'ajout d'une méthode de test. Toutefois, lorsque cette option est définie, la méthode de test ne sera pas visible dans la fenêtre Affichage de tests ou dans l'Explorateur de tests tant que vous n'aurez pas compilé la classe la contenant et cliqué sur Actualiser dans la fenêtre Affichage de tests ou dans l'Explorateur de tests.

    Remarque :

    Lorsque cette option est définie, les nouvelles méthodes de test seront découvertes à la compilation. Cela augmente le temps total nécessaire à la compilation de la solution.

Pour désactiver la découverte automatique des méthodes de test

  1. Dans le menu Outils, cliquez sur Options.

    La boîte de dialogue Options s'affiche.

  2. Développez Outils de test dans le volet gauche, puis cliquez sur Projet de test.

  3. Pour désactiver la découverte automatique des méthodes de test, sélectionnez µµµDisable Background Discovery of Test Methods.

    Remarque :

    Lorsque cette option est définie, toute méthode de test que vous ajoutez à toute classe de test ne sera pas visible dans la fenêtre Affichage de tests ou dans l'Explorateur de tests tant que vous n'aurez pas compilé la classe qui contient cette méthode.

Voir aussi

Tâches

Comment : fusionner des données de couverture du code

Dépannage des tests Web

Dépannage des tests de charge

Concepts

Vue d'ensemble du déploiement de test

Utilisation des données de couverture du code fusionnées

Dépannage des tests unitaires pilotés par les données

Vue d'ensemble des tests unitaires ASP.NET