Ich lerne gerade, wie man NUnit benutzt. Ich habe mein Hauptprojekt in seiner Lösung, und erstellt ein separates Projekt in der gleichen Lösung, die meine Unit-Tests, mit seiner eigenen Namespace halten wird. Von diesem Projekt füge ich einen Verweis auf das Hauptprojekt hinzu und füge eine
using MainProjectNamespace;
auf die Spitze zu treiben.
Wenn ich zu NUnit gehe, funktionieren alle Tests, die ich habe, die nicht auf das Hauptprojekt verweisen. Das sind Tests, die ich nur eingerichtet habe, um mich an NUnit zu gewöhnen, und die so gut wie nutzlos sind. Wenn NUnit die echten Tests ausführt, löst der Test diese Ausnahme aus:
TestLibrary.Test.TestMainProject: System.IO.FileNotFoundException : Datei oder Assembly konnte nicht geladen werden 'WpfApplication2, Version = 1.0.0.0, Kultur=neutral, PublicKeyToken=null' oder eine ihrer Abhängigkeiten laden. Das System kann die angegebene Datei nicht finden.
Warum erhalte ich diese Ausnahme?
EDIT :
Wenn ich nun versuche, die Assembly in NUnit zu laden, wird sie nicht einmal geladen (so dass ich nicht einmal die Chance habe, die Tests auszuführen)
Dies ist die Ausnahme, die auftritt, und die Stapelverfolgung:
System.IO.DirectoryNotFoundException: Ein Teil des Pfades 'LONG PATH HERE I DON'T WANT TO TYPE' konnte nicht gefunden werden
System.IO.DirectoryNotFoundException...
Server stack trace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.SetCurrentDirectory(String path)
at NUnit.Core.DirectorySwapper..ctor(String directoryName)
at NUnit.Core.Builders.TestAssemblyBuilder.Load(String path)
at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, Boolean autoSuites)
at NUnit.Core.Builders.TestAssemblyBuilder.Build(String assemblyName, String testName, Boolean autoSuites)
at NUnit.Core.TestSuiteBuilder.Build(TestPackage package)
at NUnit.Core.SimpleTestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
at NUnit.Core.RemoteTestRunner.Load(TestPackage package)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at NUnit.Core.TestRunner.Load(TestPackage package)
at NUnit.Util.TestDomain.Load(TestPackage package)
at NUnit.Util.TestLoader.LoadTest(String testName)
EDIT2: Der obige Pfad befindet sich eindeutig auf meiner Festplatte
EDIT3: Ich habe gerade von Debug zu Release gewechselt, auf NUnit, und die dll aus dem Release-Ordner von TestingLibrary geladen... Und sie wurde geladen! 1 der 3 Namespace-spezifischen Tests funktionierte. Ich komme voran.
EDIT4: Tja, tja, tja... Ich kann die Tests jetzt tatsächlich durchführen, aber ich bin wieder bei dem ursprünglichen Fehler. IT findet die Baugruppe für das Hauptprojekt nicht