Ich stoße auf ein Problem mit Komponententests auf unserem Build-Server Team City (8.0.4) - der Code builds & amp; führt alle Tests lokal über Resharper und nCrunch aus.
Aber wenn ich auf dem Server laufe, erhalte ich den folgenden Fehler, obwohl die Unity-Assembly im selben Verzeichnis wie die Unit Test Assembly existiert und in der Unit Test Assembly referenziert wird.
Setup-Methode fehlgeschlagen. SetUp: System.IO.FileNotFoundException: Die Datei oder Assembly 'Microsoft.Practices.Unity, Version = 2.0.414.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde vom System nicht gefunden. bei XXXX.Unity.UnityContainerAdapter..ctor () bei XXXX.GraphExtensionsTests..ctor () in c: \ TeamCityV7 \ Agent-1 \ Arbeit \ f02f7e27c0bedfa2 \ XXXX \ Graph.Tests \ Extensions \ GraphExtensionsTests.cs: Zeile 44
Ich habe die Kopie von Microsoft.Practices bestätigt.Unity ist die korrekte Version.
Ich habe auch bestätigt, dass die Assemblies mit der Vollversion des Frameworks erstellt wurden - ohne Client-Profil.
Irgendwelche Ideen, warum Team City scheitern könnte?
Überprüfen Sie das Muster, das Sie verwenden, um Ihre Testbaugruppen zu lokalisieren. Ich hatte ein ähnliches Problem mit einer anderen Bibliothek und es stellte sich heraus, dass das Muster darin bestand, die Test-Assembly unter bin \ Release und obj \ Release zu finden; Der Ordner obj enthält nicht alle Assemblys, auf die das Projekt verweist, und ist eigentlich nur ein Arbeitsordner für den Compiler.
Eine andere Möglichkeit, die ich kürzlich entdeckt habe, ist, wenn Sie eine Bibliothek verwenden, die Sie nicht explizit referenzieren, wird TeamCity die Bibliothek nicht zur Verwendung sammeln und scheitern, wenn es implizit auf die Assembly verweist. Ich entdeckte dies, als ich versuchte herauszufinden, warum NHibernate.ByteCode.Castle, auf das in meinem Testprojekt verwiesen wurde, nicht geladen wurde und zu einer FileNotFoundException bei TeamCity führte. Letztendlich habe ich einen Unit-Test gemacht:
%Vor%... danach wird die Datei korrekt geladen und meine Unit-Tests kompiliert.
Tags und Links .net unit-testing teamcity continuous-integration .net-assembly