在正常的单元测试环境中,伪造不会运行

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (10)

我使用的是一个简单的概念假证nUnit测试:

  [Test]
  public void TestFakes()
  {
      using (var ctx = ShimsContext.Create())
      {
          System.Fakes.ShimDateTime.NowGet = () => { return new DateTime(2000, 1, 1); };

          Assert.That(DateTime.Now.Year, Is.EqualTo(2000));
      }
  }

此测试在VisualStudioTestExplorer中运行,但不运行于:

  • nUnit GUI
  • nUnit控制台
  • JetBrains测试跑步者(dotCover或ReSharper)
  • TestDriven.net测试运行程序

在每一个错误中,我都会收到以下错误:

..._轮廓仪_路径与COR_分析器环境变量

反思到那个程序集时,它似乎是在寻找Intellitraces,一个VS终极功能-我只安装了Premium。

我们在构建服务器上使用nUnit运行程序,因此这是使用伪代码的阻止程

提问于
用户回答回答于

执行基于MS假货的测试使用其他任何东西,除了MS测试框架。

我相信,MS假货的工作方式会给NUnit这样的测试运行程序带来问题。

除非NUnit,xUnit等的作者添加对MS假货的支持(或者有一个巧妙的解决办法),否则我认为必须坚持MS Test。

编辑:

它看起来像是最新版本的V2.5确实适用于MS假货。我已经在它的开发过程中试用了它,并且可以确认使用NCrunch执行MS假测试是没有失败的。

用户回答回答于

伪造只适用于VisualStudioTestRunner(AKA VStest.Console.exe)。即使是以前的Microsoft MSTest Runner不支持

扫码关注云+社区