我下载了NCrunch for Visual 2013的试用版,并试图让它与我的解决方案一起工作,这个解决方案构建得很好,并且有工作的MS测试。我能够让NCrunch构建所有的项目( C#和C++的混合物),但是每个测试都失败了,其中包含了以下信息:
程序集初始化/清理失败: System.TypeInitializationException:“IDC_UnitTests.DataCollectorTests”的类型初始化程序引发了一个异常。-> System.IO.FileNotFoundException:无法加载文件或程序集“IDC.dll”或其依赖项之一。找不到指定的模块。在IDC_UnitTests.DataCollectorTests..cctor()
每个项目的输出路径定义为:..\Debug\
看起来NCrunch确实没有使用这个输出路径,因为1。这是我以前看到的错误,当我无意中没有将其中一个项目的输出路径设置为..\Debug 2时。当我查看NCrunch目录(AppData\Local\18552\69\Debug)时,我没有像我应该看到的那样看到那里的所有项目dll。不确定NCrunch是否组织了像MSBuild这样的东西,但看起来很可疑。
有什么想法吗?
谢谢,戴夫
发布于 2015-08-03 15:54:31
NCrunch为每个引用的DLL创建单独的“工作区”。例如,如果您有AssemblyA.Tests.dll引用AssemblyA.dll,NCrunch将在两个不同的目录中创建2个工作区(如您所发现的那样,在AppData\Local\下),并且即使DLL不在同一个目录中,NCrunch也能够解决依赖关系。
在文档中:“在正常和构建的情况下,这些资源文件将与引用项目的输出程序集共存。在NCrunch下,情况并不总是这样。”阅读更多。
但是,如果要动态加载程序集(即Assembly.Load()),运行时默认希望DLL位于正在执行的程序集旁边,但它不会出现。在这种情况下,您需要指示NCrunch使用复制引用程序集到工作区的选项带来依赖关系,您可以通过右键单击目标程序集并选择配置所选组件从NCrunch视图访问该依赖项。

https://stackoverflow.com/questions/20894667
复制相似问题