Wie kann ich NUnit meine bindingRedirect in meiner testassembly.dll.config respektieren?

8

Ich verwende das 1.0 RTM von Fluent Nhibernate, mit einem 3.0 Build von NHibernate. Um dies zu tun, muss ich meiner .config-Datei Folgendes hinzufügen:

%Vor%

Dies funktioniert hervorragend, wenn Sie Integrationstests mit dem TestDriven.net-Plugin ausführen, aber in der NUnit-GUI oder im Konsolen-Runner mit folgendem Fehler fehlschlagen:

System.IO.FileLoadException: Die Datei oder Baugruppe konnte nicht geladen werden. NHibernate, Version = 2.1.0.4000, Culture = Neutral, PublicKeyToken = aa95f207798dfdb4 oder eine seiner Abhängigkeiten. Die Manifestdefinition der lokalisierten Assembly stimmt nicht mit der Assemblyreferenz überein. (Ausnahme von HRESULT: 0x80131040)

Wie bekomme ich NUnit dazu, meine bindingRedirect zu respektieren und meine Integrationstests erfolgreich auszuführen?

    
JohnRudolfLewis 10.03.2010, 22:08
quelle

2 Antworten

11

Ich hatte ähnliche Probleme, wenn ich nunit auf einem CI-Server (Bambus, um genau zu sein) laufen ließ. Die Art, wie ich es verstehe, ist, dass, wenn Nunit in seinem eigenen Prozessraum läuft (wie Sie es nur von der Kommandozeile aus ausführen), es die .dll.config Assembler-Weiterleitungen richtig lesen kann. Wenn Ihr CI-Server jedoch innerhalb des Prozessraums des CI-Servers nunit ausführt, versucht er, die Konfiguration vom übergeordneten Prozess abzurufen. Um sicherzustellen, dass nunit in einem eigenen Prozessbereich ausgeführt wird, fügen Sie die Befehlszeilenoption /process:multiple hinzu. Zumindest funktionierte das für mich so, dass Nunit die Redirect-Bindings richtig finden würde.

TL; DR: Verwenden Sie die Befehlszeilenoption /process:multiple

    
viggity 27.03.2014 16:12
quelle
3

Der Schlüssel wird in die richtige .config-Datei geschrieben. Siehe Führt das Umleiten der Baugruppenbindung für die Einheit aus Testen mit einem Testläufer? .

Ein anderer Ansatz wäre, flüssiges Nhibernat gegen NHibernate 3.0 zu kompilieren. Wenn es Kompilierungsfehler hat, frage das Entwicklerteam und / oder gib die Quelle aus und mach es kompilieren.

    
Mauricio Scheffer 11.03.2010 02:58
quelle