98 votes

NUnit n'exécute pas le code de Visual Studio 2010

J'essaie de charger une dll de Visual Studio 2010 beta dans le GUI de NUnit. Je reçois un message d'erreur.

Cet assemblage est construit par un runtime plus récent que le runtime actuellement chargé et ne peut être chargé. Il se peut que vous essayiez de charger un assemblage construit avec une version du CLR plus récente que celle sous laquelle NUnit est actuellement exécuté.

Comment forcer un exécutable à s'exécuter sous .NET 4 ?

132voto

Charles Cook Points 1814

J'ai téléchargé la source de NUnit 2.5 et ouvert la solution VS2008 dans la version bêta de VS2010. Une fois la conversion terminée, j'ai ouvert tous les projets et changé le paramètre du cadre cible pour tous les projets en ".NET Framework 4.0". J'ai ensuite construit la solution sans aucune erreur. Je peux maintenant utiliser l'application NUnit GUI pour exécuter les tests construits pour .NET 4.0. Je n'ai pas fait de tests exhaustifs de cette construction, il peut donc y avoir des problèmes, mais pour mes besoins, cela fonctionne bien.

Mise à jour : Il n'est pas nécessaire de reconstruire NUnit. J'ai découvert que si vous ajoutez ce qui suit au fichier de configuration NUnit approprié, vous pouvez exécuter une dll de test construite pour .NET 4.0.

Sous <configuration> ajouter :

<startup>
  <supportedRuntime version="v4.0.30319" />
</startup>

et sous <runtime> ajouter :

<loadFromRemoteSources enabled="true" />

25voto

pelazem Points 1049

Avec la sortie de .NET 4, j'ai utilisé

<supportedRuntime version="v4.0.30319" />

dans le fichier NUnit 2.5.4 exe.config au lieu de requiredRuntime, et la balise loadFromRemoteResources comme indiqué ci-dessus et tout a bien fonctionné. Merci !

17voto

darky Points 141

Vous ne devez modifier aucun fichier

Ouvrez simplement ce fichier et tout fonctionnera parfaitement.

C:\Program Fichiers (x86) \NUnit 2.5.10 \bin\net -2.0 \nunit -x86.exe

12voto

Cristian Points 1186

Sur NUnit 2.5.5 vous pouvez spécifier dans la ligne de commande l'option /framework=net-4.0 et il est compatible avec les nouveaux assemblages générés avec la sortie de la dernière version de VS2010.

2voto

scottmarlowe Points 2952

La solution proposée a bien fonctionné pour faire fonctionner NUnit. Malheureusement, lorsque je suis arrivé à l'étape de couverture du code, NCover a commencé à me donner.. :

Le processus profilé est terminé. Profiler n'a pas été établie.

La meilleure solution que j'ai trouvée est d'utiliser la version "-x86" de NUnit avec NCover :

NCover.Console.exe nunit-console-x86.exe --additional params--

Travaillez maintenant.

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