Я учусь использовать NUnit. У меня есть основной проект в его решении, и я создал отдельный проект в том же решении, которое будет содержать мои модульные тесты со своим собственным пространством имен. Из этого проекта я добавляю ссылку на основной проект и добавляю
using MainProjectNamespace;
к вершине этого.
Когда я иду в NUnit, все тесты, которые у меня есть, не относятся к основной работе над проектом. Это тесты, которые я настраиваю только для того, чтобы привыкнуть к NUnit, и они практически бесполезны. Когда NUnit запускает настоящие тесты, тест выдает это исключение:
TestLibrary.Test.TestMainProject: System.IO.FileNotFoundException: не удалось загрузить файл или сборку «WpfApplication2, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = null» или одна из ее зависимостей. Система не может найти указанный файл.
Почему я получаю это исключение?
РЕДАКТИРОВАТЬ:
Теперь, когда я пытаюсь загрузить сборку в NUnit, она даже не загружается (поэтому я даже не могу запустить тесты)
Это исключение, которое приходит, и трассировка стека:
System.IO.DirectoryNotFoundException: не удалось найти часть пути «ДЛИННЫЙ ПУТЬ ЗДЕСЬ Я НЕ ХОЧУ ВВОДИТЬ»
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: указанный выше путь явно НАХОДИТСЯ на моем жестком диске.
EDIT3: я только что переключился с Debug на Release на NUnit и загрузил dll из папки выпуска TestingLibrary... И она загрузилась! 1 из 3 тестов, специфичных для пространства имен, сработал. Собираюсь куда-то, я.
РЕДАКТИРОВАТЬ4: Хорошо... Теперь я могу запустить тесты, но я вернулся к исходной ошибке. IT не находит сборку для основного проекта