55 votes

Comment faire exécuter des tests unitaires sur une plate-forme x64

J'ai une application en C# qui doit s'exécuter en x64 mode. Le problème est que j'essaie de créer des tests unitaires qui exécutent des méthodes dans l'application x64 et le projet de tests unitaires n'a même pas de construire. J'obtiens l'erreur suivante quand elle tente de construire.

Erreur de chargement C:.....\bin\x64\Debug....UnitTests.dll: Impossible de charger le conteneur de test 'C:.....\bin\x64\Debug....UnitTests.dll" ou une de ses dépendances. Si vous construisez votre projet de test de l'assemblée comme une version 64 bits de l'assemblée, il ne peut pas être chargé. Lorsque vous construisez votre projet de test de l'assemblée, sélectionnez "any CPU" pour la plate-forme. Pour l'exécution de vos tests en mode 64 bits sur un processeur 64 bits, vous devez modifier vos paramètres de test dans l'onglet Hôtes à l'exécution de vos tests dans un processus 32 bits. Détails de l'erreur: impossible de charger le fichier ou l'assembly 'file:///C:.....UnitTests\bin\x64\Debug....UnitTests.dll" ou une de ses dépendances. Une tentative a été faite pour charger un programme avec un format incorrect.

J'ai essayé de changer l'unité de test pour les systèmes x64 et également n'Importe quel CPU et ne peut toujours pas le faire fonctionner. Est-il un correctif pour cela?

41voto

Robert Jeppesen Points 4541

Je suppose que vous utilisez le framework de test Visual Studios puisque vous n'en mentionnez pas d'autre. Dans VS2010, vous pouvez forcer l'hôte de test à s'exécuter en x64. Créez vos assemblys en tant que CPU ou x64, puis définissez l'hôte de test sur x64.

http://msdn.microsoft.com/en-us/library/ee782531.aspx

1voto

ralch Points 186

J'ai eu un problème similaire. Il existe un problème étrange dans Visual Studio 2010 (sous x64), qui entraîne la modification du processeur cible lorsque vous ajoutez un nouveau projet à la solution existante. Êtes-vous sûr que toutes les références et cibles CPU sont x64?

0voto

thienhaflash Points 44

Vous devrez définir toutes les références du projet de test sur local (défini sur true). J'ai déjà rencontré ce problème, j'espère que cela fonctionnera aussi pour vous (j'utilise Windows 7 64 bits + VS2012)

0voto

Cary Points 73

Cette erreur peut être corrigée si vous nettoyez et reconstruisez tous les assemblys appropriés. Il doit y avoir un fichier corrompu de manière inattendue.

Une chose à améliorer pour VS, c'est lorsque la mauvaise exception de format est détectée, veuillez signaler le nom du fichier. Ensuite, le développeur peut uniquement reconstruire ce fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X