我正在学习如何使用NUnit.我的主要项目在它的解决方案中,并在同一个解决方案中创建了一个单独的项目,它将持有我自己的命名空间的单元测试.从该项目我添加对主项目的引用并添加一个
using MainProjectNamespace;
到它的顶部.
当我去NUnit时,我所做的任何测试都没有引用主要的项目工作.这些是我为了习惯NUnit而设置的测试,几乎没用.当NUnit运行实际测试时,测试会抛出此异常:
TestLibrary.Test.TestMainProject:System.IO.FileNotFoundException:无法加载文件或程序集'WpfApplication2,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一.系统找不到指定的文件.
为什么我得到这个例外?
编辑:
现在,当我尝试将程序集加载到NUnit中时,它甚至不会加载(因此我甚至无法运行测试)
这是来自sup的异常,以及堆栈跟踪:
System.IO.DirectoryNotFoundException:找不到路径的一部分'LONG PATH HERE I DO NOT TYPE'
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)
编辑2:上面的路径显然是我的硬盘驱动器
EDIT3:我刚从NUnit上的Debug切换到Release,并从TestingLibrary的release文件夹中加载了dll ......然后加载了!3个特定于命名空间的测试中有1个起作用.到了某个地方,我.
EDIT4:Welllllllll ......我现在可以实际运行测试,但我回到了原来的错误.IT部门没有找到主要项目的装配
编译器删除所有未使用的引用,并且不会不必要地部署dll.A using
(单独)不算作用.通过"复制到输出目录"设置标记要部署的dll,或者添加一些真正使用dll中声明的类型的代码.