Ok, also hier ist die vollständige Beschreibung des Problems Ich habe:Funktioniert das Umleiten der Assembly-Bindung für Unit-Tests mit einem Test-Runner?
Ich versuche NUnit ExtensionMethods zu verwenden, aber wenn ich laufe einen Test einen der Erweiterungsmethoden enthält TestDriven.Net verwenden oder wenn ich aus nur flach versuchen Um die Assembly mithilfe einer Test-Runner-GUI (Icarus oder NUnit) zu laden, erhalte ich eine FileNotFoundException.
Hämmern Kopf gegen eine Wand und graben weiter ich glaube ich weiß, was los ist. Cue Reflektor und yep, kann ich sehen, dass NUnit.Framework> ExtensionMethods.dll einen Verweis auf
hatnunit.framework, Version=2.4.6.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
und meine aktuelle Version von nunit, dass ich darunter ist
nunit.framework, Version=2.4.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77
Jetzt habe ich nie gebrauchter Montag wieder Richtung vor, aber es scheint, wie es eine einfache Sache des Hinzufügens einer App.Config mit den folgenden Zeilen würde:
<?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>
und es ist mein Verständnis, dass auf die 2.4.6 Version nennt (whic h existiert nicht auf diesem Rechner) sollte automatisch auf die Version 2.4.8 umgeleitet werden.
Dies funktioniert jedoch nicht, und ich vermute (aber noch nicht bestätigt), dass dies ist, weil Testläufer nicht automatisch app.config-Dateien lesen.
Also meine Frage ist, wie folgt:
Bin ich richtig in meiner Diagnose des Problem?
Ist die Umleitung der Baugruppe die geeignete Lösung und mache ich gerade es richtig?
Wie bekomme ich das mit dem Test Runner zu arbeiten?
Vielen Dank, noch nie von testassembly.dll.config gehört, aber das ist, was ich gesucht habe. In diesem Fall sind die NUnit Extensions Open Source und nur etwa 70 Zeilen Code, also habe ich gerade mit meiner Version geöffnet und neu kompiliert. Aber das ist gutes Wissen für das nächste Mal. –
@GeorgeMauer "testassembly.dll.config" ist, was die Standard App.config-Datei in eine Kompilierzeit umgewandelt wird. Soweit ich weiß, wird die Konfiguration standardmäßig vom .NET Framework geladen und NUnit/TestDriven.NET weiß nicht einmal genau darüber – Schneider
@Schneider: AFAIK das gilt nur für * .exe.config Dateien, nicht für *. dll.config-Dateien müssen explizit angegeben werden, wenn die AppDomain erstellt wird. – csgero