我编写了非常简单的单元测试项目来查看Microsoft Fakes的功能。我已经在系统组件上执行了菜单命令“Add Fakes Assembly”。
public static class Y2KChecker
{
public static void Check()
{
if (DateTime.Now == new DateTime(2000, 1, 1))
throw new ApplicationException("y2kbug!");
}
}
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestYear()
{
using (ShimsContext.Create())
{
ShimDateTime.NowGet = () => new DateTime(2000, 1, 1);
Y2KChecker.Check();
}
}
}
但是在使用(ShimContext.Create())时,我总是得到UnitTestIsolationException:
我的Visual Studio 2012 Update 2也安装了Resharper。如何修复此异常?
答案 0 :(得分:3)
截至2012年11月,您无法同时运行Resharper和MS Fakes。大约一年前提出了使其兼容的请求。
答案 1 :(得分:1)
到现在为止(2014年3月),您只能在Visual Studio Test Runner(vstest.console.exe)中运行使用MS Fakes的测试。当然你可以继续使用ReSharper,但它的测试跑步者无法运行你的测试。
答案 2 :(得分:0)
使用VS2012 + ReSharper时遇到同样的问题,我在没有ReSharper的情况下切换到VS2013并且工作正常。
我回到VS2012并尝试suspend ReSharper,但这并没有解决问题。
答案 3 :(得分:0)
就我而言,问题只发生在TeamCity。
我通过从MSTest切换到 VSTest 来解决。
答案 4 :(得分:0)
截至2017年10月,我能够通过Resharper运行测试,但在收集代码覆盖率时却无法运行