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

时间:2013-10-01 20:28:54

标签: resharper

在VS2012中,我通过转到:TEST->解决了运行单元测试的BadImageException问题。测试设置 - >默认处理器架构 - > 64。

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

有谁知道这些设置在哪里?

7 个答案:

答案 0 :(得分: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在“选项”对话框中具有这些设置(选项 - >工具 - >单元测试)。如果在解决方案打开时设置此项,则会将其设置为当前解决方案。如果没有打开解决方案,它将成为所有解决方案的默认解决方案。您还可以在单​​元测试会话窗口中基于每个测试运行进行设置。此设置不会保留。

答案 1 :(得分:8)

我尝试了在Google和StackOverflow中找到的不同内容(包括本主题中的其他答案),但对我有用的是:

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

enter image description here

答案 2 :(得分:3)

我的解决方案过于苛刻,但这是唯一对我有用的方法

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

答案 3 :(得分:2)

我们有一个similar issue when trying to setup MSTEST for Sharepoint 2007 - 它将继续在x86而不是x64中运行。实例化SPSite保持说"无法找到http://server:port/处的Web应用程序"。

选项1 - 分配正确的活动测试设置

我开始更换@ valentin-kuzub建议的EXE以确认它会起作用 - 但后来意识到我们错误的Test Settings文件处于活动状态 - 有(2)Local.testsettings和{{ 1}}。其中一个设置为使用x86而不是针对x64。

选项2 - 配置RunSettings

另一个选项是switching from testSettings to runSettingsassigning TargetPlatform

TraceAndTestImpact.testsettings

选项3 - 使用测试设置默认架构

最后一个选项(您已尝试过)位于选项#2的XML注释中 - >您也可以从菜单测试 - > 测试设置 - > 默认处理器架构 - > x64

enter image description here

答案 4 :(得分:0)

使用高内存代码时,您可能会发现需要更改R#test runner config以包含

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

您可以在

找到此文件
%localappdata%\JetBrains\Installations\ReSharperPlatformVs12\
JetBrains.ReSharper.TaskRunner.CLR45.x64.exe.config

此路径可能依赖于Visual Studio版本,并且可能因R#版本而异。此特定路径是带有Resharper 9.1的Visual Studio 2013。 Resharper 10的经常性问题。配置文件的位置不变。 https://youtrack.jetbrains.com/issue/RSRP-446178

答案 5 :(得分:0)

我刚刚与ReSharper和MsTests碰面 - 错误“单元测试运行器无法运行测试不兼容的目标平台”。

我们的问题是测试项目没有建成。

修复:

  1. C:\

  2. Build

  3. 确认勾选了 Build

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

答案 6 :(得分:0)

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