在VS2012中,我通过转到:TEST-> TEST SETTINGS - > DEFAULT PROCESSOR ARCHITECTURE - > x64来解决运行单元测试的BadImageException.
这适用于内置的Visual Studio测试窗口,但我找不到ReSharper的等效设置,因此我无法通过单击测试左侧的小节点来运行单元测试.这显然不重要但真的很烦人.
有谁知道这些设置在哪里?
cit*_*att 11
ReSharper将使用测试项目的位进行测试.因此,如果您的测试项目是AnyCpu,它将在AnyCpu主机进程中运行,这意味着32位系统上的32位或64位系统上的64位.如果将项目设置为32位或64位特定,ReSharper将在32位或64位主机进程中运行它.
因此,如果您的生产代码是32位特定的,那么您也应该使您的测试项目具体32位.如果您的生产代码是64位特定的,它应该可以正常工作,只要您的测试项目是64位或AnyCpu.
同样,它将使用测试项目的.net运行时 - .net 2或.net 4.
这些默认值适用于绝大多数情况.我从来没有必须手动设置它,但您可以覆盖此行为,并强制使用bit-ness或.net框架版本.ReSharper 8在"选项"对话框中有这些设置(选项 - >工具 - >单元测试).如果在解决方案打开时设置此项,则会将其设置为当前解决方案.如果没有打开解决方案,它将成为所有解决方案的默认解决方案.您还可以在单元测试会话窗口中基于每个测试运行进行设置.此设置不会持续存在.
我尝试了在Google和StackOverflow中找到的不同内容(包括本主题中的其他答案),但对我有用的是:
ReSharper的单元测试会话窗口 - >在顶部面板上设置平台下拉到64位.