Comment puis-je obtenir des tests unitaires sur une plate-forme x64

J’ai une application C # qui doit fonctionner en mode x64. 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 test unitaire ne construit même pas. Je reçois l’erreur suivante quand il essaie de construire.

Erreur lors du chargement de C: ….. \ bin \ x64 \ Debug …. UnitTests.dll: Impossible de charger le conteneur de test ‘C: ….. \ bin \ x64 \ Debug …. UnitTests.dll ‘ou l’une de ses dépendances. Si vous créez votre assembly de projet de test en tant qu’assemblage 64 bits, il ne peut pas être chargé. Lorsque vous construisez votre assembly de projet de test, sélectionnez “N’importe quelle CPU” pour la plate-forme. Pour exécuter vos tests en mode 64 bits sur un processeur 64 bits, vous devez modifier vos parameters de test dans l’onglet Hôtes pour exécuter 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 l’une de ses dépendances. Une tentative de chargement d’un programme avec un format incorrect a été effectuée.

J’ai essayé de changer le test d’unité en x64 et aussi en n’importe quel processeur et je n’arrive toujours pas à le faire fonctionner. Y a-t-il un correctif pour cela?

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

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

Dans VS 2012 et versions ultérieures, vous pouvez sélectionner la plate-forme cible par défaut à partir Test menu Test Settings|Default Processor Architecture sous Test Settings|Default Processor Architecture

Paramètres de test de Visual Studio

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 les cibles du processeur sont x64?

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

Cette erreur peut être corrigée si vous nettoyez et reconstruisez tous les assemblys pertinents. Un fichier doit être corrompu de manière inattendue.

Une chose à améliorer pour VS, c’est lorsque l’exception de mauvais format est détectée, veuillez rapporter le nom du fichier. Le développeur ne peut alors reconstruire que ce fichier.