【问题标题】:Run tests in 64-bit以 64 位运行测试
【发布时间】:2017-12-19 20:08:44
【问题描述】:

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

(开发机器是64位)。

【问题讨论】:

    标签: c# 64-bit mstest


    【解决方案1】:

    Visual Studio 对此有一个内置选项。有点难找(如果你不知道去哪里找)。

    Solution Explorer 中双击local.testsettings 文件并在列表框中选择Hosts。然后如图所示进行更改。

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

    【讨论】:

    • 这在创建SPSite 时修复了 SharePoint FileNotFoundException。在 64 位模式下运行 IIS 6 时,MSTest 需要 x64 测试运行器 进行 Sharepoint SPSite 测试。
    【解决方案2】:

    在 Visual Studio 2013 中更容易。在运行测试之前选择测试->测试设置->默认处理器架构->x64

    【讨论】:

      【解决方案3】:

      尝试this blog post中描述的解决方案:

      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跳过强名验证

      【讨论】:

      • 这不会让 mstest 对于所有项目/解决方案都以 64 位运行吗?我只是想为一个特定的项目做。
      • 在没有/noisolation 的情况下运行应该会让你运行VSTestHost.exe,它仍然是32 位的。不过我自己没试过。请务必备份mstest.exe。作为替代方案,您可以使用脚本在 32 位和 64 位 mstest.exe 之间来回切换。
      • 也许您可以将mstest.exe 复制为mstest64.exe 并运行标志删除和测试?
      猜你喜欢
      • 1970-01-01
      • 2013-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多