6

我有一个运行良好的 NUnit 测试的 dll。我将它从 Any CPU 转换为 x86 项目,因为我需要跨不同平台可靠地使用 SQLite,因此我需要包含 32 位 System.Data.SQLite.dll 并让所有内容都引用它。

无论如何,转换后,NUnit 在尝试加载 dll 时会出现该错误。

我认为这根本不会有启发性,但这里是堆栈跟踪:

System.IO.FileNotFoundException:无法加载文件或程序集......或其依赖项之一。该系统找不到指定的文件”

服务器堆栈跟踪:
   在 System.Reflection.Assembly._nLoad(AssemblyName 文件名,字符串 codeBase,证据 assemblySecurity,程序集 locationHint,StackCrawlMark 和 stackMark,布尔 throwOnFileNotFound,布尔 forIntrospection)
   在 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,证据 assemblySecurity,StackCrawlMark 和 stackMark,Boolean for Introspection)
   在 System.Reflection.Assembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark 和 stackMark,Boolean for Introspection)
   在 System.Reflection.Assembly.Load(字符串 assemblyString)
   在 NUnit.Core.Builders.TestAssemblyBuilder.Load(字符串路径)
   在 NUnit.Core.Builders.TestAssemblyBuilder.Build(字符串 assemblyName,布尔 autoSuites)
   在 NUnit.Core.Builders.TestAssemblyBuilder.Build(字符串 assemblyName,字符串 testName,布尔 autoSuites)
   在 NUnit.Core.TestSuiteBuilder.BuildSingleAssembly(TestPackage 包)
   在 NUnit.Core.TestSuiteBuilder.Build(TestPackage 包)
   在 NUnit.Core.SimpleTestRunner.Load(TestPackage 包)
   在 NUnit.Core.ProxyTestRunner.Load(TestPackage 包)
   在 NUnit.Core.ProxyTestRunner.Load(TestPackage 包)
   在 NUnit.Core.RemoteTestRunner.Load(TestPackage 包)
   在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   在 System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg,Int32 methodPtr,布尔 fExecuteInContext)

在 [0] 处重新抛出异常:
   在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)
   在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型)
   在 NUnit.Core.TestRunner.Load(TestPackage 包)
   在 NUnit.Util.TestDomain.Load(TestPackage 包)
   在 NUnit.Util.TestLoader.LoadTest(字符串 testName)

我试图测试的 dll 引用了同一解决方案中的另一个。当我运行最终全部使用的 GUI 时,一切正常,但测试不会加载。

更新

无法加载的文件是被测程序集,也就是MyAppName.Test.dll。

4

1 回答 1

5

尝试使用融合日志查看器fuslogvw.exe。它应该为您提供有关该问题的更多详细信息。

于 2009-10-02T15:34:46.743 回答