Ok, voici donc la description complète du problème que je vais avoir:La liaison d'assemblage de réacheminement fonctionne-t-elle pour les tests unitaires avec un testeur?
Je suis en train d'utiliser NUnit ExtensionMethods mais chaque fois que je lance un test contenant l'une des méthodes d'extension à l'aide TestDriven.Net ou si je viens à plat essayer pour charger l'assembly en utilisant une interface graphique de test-runner (Icarus ou NUnit), j'obtiens une exception FileNotFoundException.
Frapper la tête contre un mur et de creuser plus loin, je pense que je sais ce qui ne va pas. réflecteur Cue et yep, je peux voir que NUnit.Framework> ExtensionMethods.dll a une référence à
nunit.framework, Version=2.4.6.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
et ma version actuelle de nunit que je suis compris est
nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
Maintenant, je n'ai jamais re-direction de montage utilisé avant, mais il semble que ce serait une simple question d'ajouter un App.Config avec les lignes suivantes:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity
name="nunit.framework.dll"
publicKeyToken="96d09a1eb7f44a77" />
<bindingRedirect oldVersion="2.4.6.0" newVersion="2.4.8.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
et je crois comprendre que les appels à la version 2.4.6 (WHIC h n'existe pas sur cette machine) devrait automatiquement rediriger vers la version 2.4.8.
Cela ne fonctionne pas cependant, et je suppose (mais je ne l'ai pas encore confirmé) que c'est parce que les coureurs de test ne lisent pas automatiquement les fichiers app.config.
Donc, ma question de sont les suivantes:
Ai-je raison dans mon diagnostic du problème ?
La redirection d'ensemble est-elle la solution appropriée et est-ce que je fais est-ce exact? Comment puis-je faire fonctionner ceci avec le testeur ?
Merci beaucoup, jamais entendu parler de testassembly.dll.config mais c'est ce que je cherchais. Dans ce cas, les Extensions NUnit sont open source et seulement environ 70 lignes de code, donc je viens de l'ouvrir et de le recompiler avec ma version. Mais c'est une bonne connaissance pour la prochaine fois. –
@GeorgeMauer "testassembly.dll.config" est ce que le fichier App.config standard est transformé en temps de compilation. Pour autant que je sache, la config est chargée par le framework .NET par défaut et NUnit/TestDriven.NET ne le sait même pas spécifiquement – Schneider
@Schneider: AFAIK cela n'est vrai que pour les fichiers * .exe.config, pas pour *. Fichiers dll.config, ceux-ci doivent être explicitement spécifiés lors de la création de l'AppDomain. – csgero