web-dev-qa-db-fra.com

Comment puis-je exécuter 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 que le projet de test unitaire ne sera même pas généré. J'obtiens 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 un de ses dépendances. Si vous construisez votre projet de test Assembly en tant que 64 bit Assembly, il ne peut pas être chargé. Lorsque vous construisez votre projet de test Assemblage, sélectionnez "Tout processeur" pour la plate-forme. Pour exécuter vos tests dans 64 mode bit sur un processeur 64 bits, vous devez modifier vos paramètres 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 'fichier: /// C: ..... UnitTests\bin\x64\Debug .... UnitTests.dll' ou un des fichiers ses dépendances. Une tentative a été faite pour charger un programme avec un format incorrect.

J'ai essayé de changer le test unitaire en x64 et également Tous les processeurs et je n'arrive toujours pas à le faire fonctionner. Y at-il une solution pour cela?

43
RJ.

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

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

39
Robert Jeppesen

Dans VS 2012 et les versions ultérieures, vous pouvez sélectionner la plateforme cible par défaut dans le menu Test sous Test Settings|Default Processor Architecture.

 Visual Studio Test Settings

48
Sten Petrov

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 de processeur sont x64?

1
Svetlin Ralchev

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

Une chose que VS doit améliorer, c'est lorsque l’exception de mauvais format est détectée, veuillez indiquer le nom du fichier. Ensuite, le développeur peut uniquement reconstruire ce fichier.

0
Cary

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

0
thienhaflash