UnitTestIsolationException:无法从COR_PROFILER_PATH和COR_PROFILER环境变量解析探查器路径

时间:2018-09-27 08:29:39

标签: unit-testing stub shim vstest

我正在将VS2015与Update 3一起使用。 我有一个简单的hello world单元测试项目,我正在尝试获取shimContext,下面是代码片段。 我在shimContext处出现异常以创建调用: *

  

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException'   Microsoft.QualityTools.Testing.Fakes.dll中发生的错误   信息:无法从COR_PROFILER_PATH解析探查器路径   和COR_PROFILER环境变量。

*

 [TestClass]
    public class UnitTest1
    {

        private IDisposable shimsContext;

        [TestMethod]
        public void TestMethod1()
        {
            shimsContext = ShimsContext.Create();
            Assert.IsTrue(true);
        }
    }

我浏览了关于StackOverflow和MSDN的许多文章,其中涉及建议的解决方法,但似乎都没有解决该问题的方法。 以下是我尝试过的解决方法列表。

  1. 要使用在启动过程中初始化IntelliTrace的单元测试运行程序(使用两个插件CodeRush和Resharper都会产生相同的异常)。
  2. 要使用ForcedLegacyMode-True链接.runsettings文件,这也 产生了相同的异常。
  3. 创建了一个尝试创建shimsContext的示例演示单元测试     验证问题是否与环境隔离。

  4. 通过命令行运行vstest.console.exe以验证测试是否成功 在命令行中运行,这也给出了相同的例外。

有什么建议/建议吗?

谢谢-Keerti。

1 个答案:

答案 0 :(得分:0)

分析了几天之后,必须对mscorlib.fakes进行更新,以克服与COR_PROFILER / UnitTestingIsolationException相关的异常。

下面是经过修改的mscorlib.fakes的快照,如果您注意到我们必须停止shims / stub框架生成与跟踪/概要分析相关的stub,则尚无法清楚其无法生成的确切原因,但是在我的mscorlib伪造文件中添加这些行之后,shimsContext的创建工作正常。

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/">
  <Assembly Name="mscorlib" Version="4.0.0.0"/>
  <StubGeneration>
    <Remove FullName="System.Diagnostics.Tracing"/>
    <Remove FullName="System.Text.Encoding"/>
    <Remove FullName="System.Security.Cryptography" />
  </StubGeneration>
</Fakes>