NUnit n’exécute pas le code Visual Studio 2010

J’essaie de charger une DLL Visual Studio 2010 dans l’interface graphique de NUnit. Je reçois une erreur popup.

Cet assembly est construit par un runtime plus récent que le runtime actuellement chargé et ne peut pas être chargé. Vous tentez peut-être de charger une version d’assembly avec une version ultérieure du CLR que la version sous laquelle NUnit est en cours d’exécution.

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

J’ai téléchargé la source 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 modifié le paramètre de 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 graphique NUnit pour exécuter des tests conçus pour .NET 4.0. Je n’ai pas effectué de test exhaustif de cette version, il peut donc y avoir des problèmes, mais pour mon propos, cela fonctionne bien.

Mise à jour: il n’est pas nécessaire de reconstruire NUnit. J’ai découvert que si vous ajoutez les éléments suivants au fichier de configuration NUnit approprié, vous pouvez exécuter une DLL de test construite pour .NET 4.0.

Sous , ajoutez:

   

et sous , ajoutez:

  

Avec .NET 4 publié, j’ai utilisé

  

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

Vous n’avez pas à modifier de fichier

il suffit d’ouvrir ce fichier et tout fonctionnera bien

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

Dans 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 du dernier VS2010.

La solution proposée fonctionnait parfaitement pour que NUnit fonctionne. Malheureusement, lorsque je suis arrivé à la couverture de mon code, NCover a commencé à me donner:

Processus profilé terminé. Connexion du profileur non établie.

La meilleure solution que j’ai trouvée était d’utiliser la version “-x86” de NUnit avec NCover:

NCover.Console.exe nunit-console-x86.exe –addition params–

Fonctionne maintenant

Pour trouver votre version .net 4 à partir de Visual [C # 2010 Express, ou jamais], accédez à “À propos” de l’application Visual sous l’élément d’aide du menu. Il devrait apparaître comme la version sous la ligne Microsoft .NET Framework dans la partie supérieure droite de la fenêtre.

J’ai rencontré le même message d’erreur lors de l’exécution de NUnit 2.4.8. Comme je n’avais pas mis à jour depuis quelque temps, j’ai installé le NUnit actuel (v2.5.9) et j’ai constaté qu’il supportait maintenant les assemblys VS2010. Donc, si vous avez récemment rencontré cette erreur, vérifiez votre version de NUnit : à partir de décembre 2010 (ou plus), la seule chose à faire est de mettre à jour NUnit.

A partir de NUnit 2.5.10, vous pouvez activer la prise en charge visuelle du studio dans l’interface utilisateur graphique:

Outils-> Paramètres-> Support IDE

Après cela, j’ai réussi à joindre le processus nunit-agent.exe qui exécute votre assembly dans un domaine d’application .NET 4.0

Si vous rencontrez ce problème après la mise à niveau vers nunit 2.5.5, vous devrez mettre à jour nant vers la dernière version pour moi, il s’agissait de .91 alpha.

J’ai trouvé utile de commencer par NUnit Application Template . Il prend en charge VS C # Express, autorise les tests de débogage et contient NUnit pour .NET 4.0 précompilé. Merci à l’auteur, le nouveau projet de test est prêt en un clic.