Dépannage des tests génériques
Mise à jour : novembre 2007
Lorsque vous effectuez des tests génériques, vous pouvez rencontrer l'erreur suivante : la collecte de données de couverture du code ne fonctionne pas lorsque vous effectuez un test générique sur une plateforme 64 bits. Pour résoudre cette erreur, utilisez les informations de la section suivante, Contournement de la limitation des 32 bits.
Contournement de la limitation des 32 bits
L'instrumentation de couverture du code ne fonctionne qu'en mode 32 bits, et non en mode 64 bits. Cela est dû au fait qu'un assembly ne peut être chargé qu'en mode 32 bits après avoir été instrumenté pour la couverture du code.
Remarque : |
---|
Aucune limitation de la sorte ne s'applique lorsque vous exécutez des tests unitaires sur un ordinateur 64 bits si vous ne collectez pas de données de couverture du code. En effet, VSTestHost.exe, le moteur de test qui charge la bibliothèque de classes, s'exécute dans un processus 32 bits. |
Pour un test générique, l'application encapsulée est générée à l'aide de "Any CPU" qui, sur un ordinateur 64 bits, est exécuté comme un processus 64 bits. Lorsque ce processus 64 bits essaie de charger un assembly 32 bits, une erreur se produit. Pour résoudre ce problème, vous pouvez procéder de différentes façons.
Utilisez la méthode suivante si votre test générique encapsule directement le fichier binaire dans lequel votre code de production a été compilé :
- Remplacer la configuration de la solution par x86
Utilisez l'une ou l'autre des deux méthodes suivantes s'il existe une couche entre le test générique et le fichier binaire de code de production. Autrement dit, votre test générique encapsule une application intermédiaire comme un atelier de test. Cet atelier de test exécute à son tour le code de production que vous testez.
Instrumenter l'application qui charge le fichier binaire de code de production
Modifier les paramètres de génération de l'application qui charge le fichier binaire de code de production
Remplacer la configuration de la solution par x86
Remplacez la configuration de la solution "Any CPU" par "x86".
Pour modifier la configuration de la solution
Cliquez avec le bouton droit sur la solution, puis cliquez sur Propriétés.
La boîte de dialogue Pages de propriétés de Solution s'affiche.
Sous Propriétés de configuration, cliquez sur Configuration.
Cliquez sur Gestionnaire de configurations.
La boîte de dialogue Gestionnaire de configurations s'affiche.
Sous Plateforme de la solution active, cliquez sur Nouveau.
La boîte de dialogue Nouvelle plateforme de solution s'affiche.
Sous Tapez ou sélectionnez la nouvelle plateforme, cliquez sur x86.
Dans la boîte de dialogue Nouvelle plateforme de solution, cliquez sur OK.
Dans la boîte de dialogue qui demande si vous souhaitez enregistrer les modifications, cliquez sur Oui.
Dans la boîte de dialogue Gestionnaire de configurations, sous Plateforme de la solution active, assurez-vous que x86 est sélectionné, puis cliquez sur Fermer.
Dans la boîte de dialogue Pages de propriétés de Solution, cliquez sur OK.
Instrumenter l'application qui charge le fichier binaire de code de production
Utilisez cette procédure pour instrumenter une application intermédiaire, ou atelier de test, que votre test générique encapsule. Cette application intermédiaire exécute le code que vous souhaitez tester. Cela force cette application à s'exécuter en mode 32 bits.
Remarque : |
---|
Cette procédure ne fonctionnera que si le fichier de symboles est disponible pour le fichier que vous instrumentez. |
Pour spécifier le fichier exécutable pour l'instrumentation
Dans Visual Studio, ouvrez le projet de test qui contient votre test générique.
Dans l'Explorateur de solutions, ouvrez le dossier Éléments de solution.
Dans le dossier Éléments de solution, double-cliquez sur le fichier .testrunconfig.
La boîte de dialogue de configuration de série de tests s'affiche.
Cliquez sur Couverture du code.
Sous Sélectionner les artefacts à instrumenter, sélectionnez l'application intermédiaire qui exécute votre fichier binaire de code de production.
Remarque : Si le fichier binaire de l'application intermédiaire n'est pas affiché sous Sélectionner les artefacts à instrumenter, cliquez sur Ajouter un assembly. Dans la boîte de dialogue Choisir les assemblys à instrumenter, spécifiez le fichier puis cliquez sur Ouvrir.
Cliquez sur Appliquer, puis sur Fermer.
Modifier les paramètres de génération de l'application qui charge le fichier binaire de code de production
Utilisez cette procédure pour instrumenter une application intermédiaire, ou atelier de test, que votre test générique encapsule. Cette application intermédiaire exécute le code que vous souhaitez tester.
Dans cette procédure, vous allez modifier les paramètres de l'application intermédiaire de sorte qu'elle puisse générer pour la plateforme x86.
Remarque : |
---|
Vous ne pouvez le faire que si l'application encapsulée est générée à partir d'un projet dans votre solution. |
Pour modifier les paramètres de génération de l'application encapsulée
Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet à partir duquel l'application intermédiaire est générée, puis cliquez sur Propriétés.
Une page de propriétés s'affiche pour le projet.
Cliquez sur l'onglet Générer.
Pour Plateforme cible, spécifiez x86.
Dans le menu Fichier, cliquez sur Enregistrer les éléments sélectionnés.
Voir aussi
Tâches
Comment : recueillir des données de couverture du code avec des tests génériques