我已经为Visual Studio 2013下载了NCrunch的试用版,我正在尝试使用我的解决方案,该解决方案构建良好且具有有效的MS单元测试。我能够让NCrunch构建所有项目(C#和C ++的混合)但每次测试都失败并显示以下消息:
程序集初始化/清除失败:System.TypeInitializationException:'IDC_UnitTests.DataCollectorTests'的类型初始化程序引发了异常。 ---> System.IO.FileNotFoundException:无法加载文件或程序集“IDC.dll”或其依赖项之一。指定的模块无法找到。 在IDC_UnitTests.DataCollectorTests..cctor()
每个项目的输出路径都定义为: .. \调试\
看起来NCrunch看起来没有使用此输出路径,因为 1.这是我之前看到的同样的错误,当我意外地没有将项目之一的输出路径设置为.. \ Debug时 2.当我查看NCrunch目录(AppData \ Local \ NCrunch \ 18552 \ 69 \ Debug时,我看不到所有的项目dll就像我应该的那样。不确定NCrunch是否组织像MSBuild这样的东西,但它似乎很可疑。
有什么想法吗?
谢谢, 戴夫
答案 0 :(得分:2)
NCrunch创建一个单独的工作空间"对于每个引用的DLL。例如,如果你有AssemblyA.Tests.dll引用AssemblyA.dll,NCrunch将创建2个工作区(在你发现的AppData \ Local \ NCrunch \下) 在2个单独的目录中,即使DLL不在同一目录中也能解析依赖关系。
来自文档:"在正常的VS版本下,这些资源文件将与引用项目的输出程序集共存。在NCrunch下,情况并非总是如此。" Read more。
但是,如果您正在动态加载程序集(即Assembly.Load()
),默认情况下运行时期望DLL位于执行程序集旁边,但它不会在那里。在这种情况下,您需要指示NCrunch携带
使用将引用的程序集复制到工作区选项的依赖项,您可以通过右键单击目标程序集并选择配置所选组件从NCrunch视图访问它。