首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Microsoft.Fakes不能在正常的单元测试上下文中运行

Microsoft.Fakes不能在正常的单元测试上下文中运行
EN

Stack Overflow用户
提问于 2013-10-15 23:22:50
回答 3查看 9.7K关注 0票数 22

我使用了一个简单的概念验证伪装nUnit测试:

代码语言:javascript
复制
  [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));
      }
  }

此测试在Visual Studio测试资源管理器中运行,但不在以下位置运行:

Resharper)

  • TestDriven.net

  • nUnit

  • nUnit console

  • JetBrains test (dotCover或

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

Microsoft.QualityTools.Testing.Fakes.UnitTestIsolation.UnitTestIsolationException :无法从COR_PROFILER_PATH和COR_PROFILER环境变量解析探查器路径

当我在这个程序集中反思时,它似乎在寻找Intellitrace,一个仅限VS旗舰版的功能--我只安装了Premium。

关于如何解决这个问题的任何建议(我们在构建服务器上使用nUnit运行器,因此这是使用假货的拦截器)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-15 23:37:59

我不认为你将能够执行基于MS Fakes的测试使用任何其他除了MS测试框架。

我相信MS Fakes的工作方式会给像NUnit这样的测试跑步者带来问题。确切地说为什么会这样,我不知道,因为其他模拟框架,如TypeMock,在NUnit等中工作得很好。但有一些特定于MS make的东西使得它更难(如果不是不可能的话)在MS测试之外的任何东西上运行。不管怎么说,这是我的理论。

除非NUnit、xUnit等的作者添加了对MS Fakes的支持(或者有一个巧妙的变通办法),否则我认为你将不得不坚持使用MS Test。

编辑:

看起来最新版本的NCrunch v2.5确实可以处理MS Fakes。我在它的开发过程中尝试过测试版,可以确认MS Fake测试是使用NCrunch执行的,没有失败。

票数 15
EN

Stack Overflow用户

发布于 2016-04-13 08:10:24

Fakes只能与Visual Studio Test Runner(也称为VStest.Console.exe)一起使用。甚至以前的微软MSTest runner doesn't support it

票数 5
EN

Stack Overflow用户

发布于 2016-08-11 22:00:57

我相信您的答案是使用以下命令之一:

代码语言:javascript
复制
VSTest.Console.exe UnitTests.dll /UseVsixExtensions

VSTest.Console.exe UnitTests.dll /TestAdapterPath:%LocalAppData%\Microsoft\VisualStudio\12.0\Extensions\<nunit test adapter installation folder>

这些命令可以在dev机器上很好地运行。如果您希望在构建服务器上运行单元测试,请将nunit test适配器文件夹复制到构建服务器并提及该路径。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19385037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档