Visual Studio 单元测试代码库因机器而异

Visual Studio Unit Test Code Base is different from machine to machine

在使用 VS 单元测试框架进行单元测试期间,我的机器上有一些有趣的行为。 机器是 win-7,VS2012 Update 1,Resharper 7.1.1

当我 运行 单元测试时,它会在 TestResults 下创建 2 个文件夹:

  1. Deploy_UserName YYYY-MM-DD hh_mm_ss
  2. UserName_MachineName YYYY-MM-DD hh_mm_ss

UserName_MachineName... 下,有文件夹 Out,这是我的测试执行的地方:

SolutionDir\TesResults\UserName_MachineName YYYY-MM-DD hh_mm_ss\Out

2 个其他人打开相同的项目(win-7、VS2012、Resharper 7.1.2/8.2.3)(尽管他们使用不同的解决方案)和 运行。他们机器上的代码执行自:

ProjectDir\bin\Debug

而且我喜欢它。我想在我的机器上有同样的行为。我检查了所有可能的设置,但没有看到任何可以更改以修改此行为的内容。 有什么想法吗?

默认情况下,Resharper 影子复制程序集用于测试。

您可以关闭卷影复制,它将 运行 在 bin 文件夹中。 此说明可能会将您指向正确的菜单以将其关闭:

https://www.jetbrains.com/resharper/webhelp80/Reference__Options__Tools__Unit_Testing.html

希望能解决您的问题

成功了:

  • 已将 VS2012 更新为 Update 4

现在我有从 Bin\Debug 执行的代码,但我无法使用 Resharper 启动单元测试 - 只有 VS 测试实用程序

  • 将 Resharper 升级到 v7.1.3

此时 Resharper 开始工作,但我在执行单元测试期间开始得到 An unhandled exception of type 'System.ExecutionEngineException' occurred in mscorlib.dll

  • 在 Resharper 选项-单元测试-MSTest 中未选中 "Use legacy Runner"。顺便说一句,Resharper v7.1.1
  • 中缺少此选项

终于成功了!