如何将ReSharper单元测试架构更改为x64?

如何将ReSharper单元测试架构更改为x64?,resharper,Resharper,在VS2012中,我通过转到:测试->测试设置->默认处理器体系结构->x64,解决了运行单元测试时出现的BadImageException 这在内置的Visual Studio测试窗口中起作用,但我找不到ReSharper的等效设置,因此我无法通过单击测试左侧的小节点来运行单元测试。这显然不重要,但真的很烦人 有人知道这些设置在哪里吗 ReSharper将使用测试项目的位属性运行测试。所以,如果您的测试项目是AnyCpu,它将在AnyCpu主机进程中运行,这意味着32位系统上的32位或64位系

在VS2012中,我通过转到:测试->测试设置->默认处理器体系结构->x64,解决了运行单元测试时出现的BadImageException

这在内置的Visual Studio测试窗口中起作用,但我找不到ReSharper的等效设置,因此我无法通过单击测试左侧的小节点来运行单元测试。这显然不重要,但真的很烦人


有人知道这些设置在哪里吗

ReSharper将使用测试项目的位属性运行测试。所以,如果您的测试项目是AnyCpu,它将在AnyCpu主机进程中运行,这意味着32位系统上的32位或64位系统上的64位。如果将项目设置为32位或64位特定,则ReSharper将在32位或64位主机进程中运行它

所以,如果您的生产代码是32位特定的,那么您也应该使您的测试项目是32位特定的。如果您的生产代码是64位特定的,那么只要您的测试项目是64位或AnyCpu,它就可以正常工作

类似地,它将使用测试项目的.net运行时-.NET2或.NET4


这些默认值适用于绝大多数情况。我从来没有手动设置过它,但您可以覆盖此行为,并强制执行一点ness或.net framework版本。ReSharper 8在选项对话框(选项->工具->单元测试)中有这些设置。如果在解决方案打开时设置此选项,则会为当前解决方案设置此选项。如果没有打开的解决方案,它将成为所有解决方案的默认设置。您还可以在“单元测试会话”窗口中对每个测试运行进行设置。此设置不会持续。

我的解决方案太粗糙,但这是唯一对我有效的方法

我放置了一个
vstest.executionengine.x86.exe的副本作为备份,并放置了一个重命名的
vstest.executionengine.exe(64位版本),而不是旧的32位版本。

我们有一个-它将继续在x86而不是x64中运行。实例化
SPSite
一直说“找不到位于的Web应用程序”

选项1-分配适当的活动测试设置 我开始替换@valentin kuzub建议的前男友,以确认它是否有效-但后来意识到我们激活了错误的文件-有(2)
Local.testsettings
TraceAndTestImpact.testsettings
。其中一个被设置为使用x86而不是针对x64

选项2-配置运行设置 另一个选择是和


x64
框架40
选项3-使用测试设置默认体系结构 最后一个选项(您已经尝试过)在选项2>的XML注释中,您也可以从菜单测试->测试设置->默认处理器架构->更改它


处理高内存代码时,您可能会发现需要更改R#测试运行程序配置,以包括

<runtime>
    <gcAllowVeryLargeObjects enabled="true" />
</runtime>

此路径可能取决于Visual Studio版本,并且可能因R#版本而异。此特定路径是Visual Studio 2013和Resharper 9.1。Resharper 10经常出现问题。配置文件的位置不变

我尝试了在谷歌和StackOverflow上找到的不同的东西(包括本主题中的其他答案),但对我有效的是:

ReSharper的单元测试会话窗口->在顶部面板上将平台下拉设置为64位


我刚刚在ReSharper和MsTests中遇到了这个问题-错误“UnitTestRunner无法运行与目标平台不兼容的测试”

我们的问题是测试项目没有被构建

要修复:

  • Build

  • 配置管理器

  • 确认已勾选“生成”


  • 在解决方案配置之间切换,以确认它是在所有配置中构建的。

    使用Visual Studio 2015,我发现x86和x64设置都会导致此问题。解决方案是关闭并重新启动Visual Studio。

    我已经将所有我认为是x64的设置都设置好了,并覆盖了您提到的设置,但仍然没有区别。一切都很奇怪。你认为如果它与32/64设置有关,那么VisualStudio测试也可以工作吗?或者你认为这感觉像是一个特定于resharper的问题吗?我也有同样的问题-@RSwasey,你找到一个有效的解决方案了吗?你试过启用fusion日志吗?这可能会指示哪些程序集出现故障。如果ReSharper的默认和显式处理不起作用,我建议是其他原因造成的。也许创建一个控制台应用程序来直接调用其中一个单元测试-将控制台应用程序显式设置为x64,它应该可以工作(在这种情况下,ReSharper在这里有一个bug),否则它将失败,并且你将有更少的活动部件来找出问题所在。对我来说不起作用。我仍然看到JetBrains.ReSharper.TaskRunner作为32位进程运行:(
    %localappdata%\JetBrains\Installations\ReSharperPlatformVs12\
    JetBrains.ReSharper.TaskRunner.CLR45.x64.exe.config