在64位系统上运行测试

14

我有一个编译为64位的ADO.NET驱动程序。因此,我需要以64位模式运行mstests。这是否可行?

(开发机器是64位)。

3个回答

19

Visual Studio内置了此选项。如果您不知道在哪里查找,可能会有点困难。

Solution Explorer中双击local.testsettings文件,并在列表框中选择Hosts。然后按照图像所示更改。

您必须在64位操作系统中进行测试,并使用AnyCPU编译应用程序。

设置更改


1
在创建SPSite时,这解决了SharePoint FileNotFoundException的问题。当在64位模式下运行IIS 6时,MSTest需要x64测试运行程序来进行SharePoint SPSite测试。 - SliverNinja - MSFT

2

在Visual Studio 2013中,这个操作更加简单。在运行测试之前,选择“测试”->“测试设置”->“默认处理器架构”->“x64”即可。


1

请尝试在此博客文章中描述的解决方案:

  1. 备份mstest.exe并运行CorFlags.exe MSTest.exe /32BIT- /Force以删除32位标志
  2. 使用/noisolation运行您的测试:MSTest.exe /testcontainer:<your-assembly> /resultsfile:<your-results-file> /noisolation
  3. 如果修改后MSTest.exe失败,请运行reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\MSTest,b03f5f7f11d50a3a /f跳过强名称验证

1
这样做会让mstest在所有项目/解决方案中以64位运行吗?我只想针对特定的项目这样做。 - jgauffin
不使用 /noisolation 运行应该会使用仍为32位的 VSTestHost.exe 运行。虽然我自己没有尝试过。请务必备份 mstest.exe。作为替代方案,您可以使用脚本在32位和64位 mstest.exe之间切换。 - Håvard S
也许你可以将 mstest.exe 复制为 mstest64.exe,并使用它来运行标志移除和测试? - ZoolWay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接