ApprovalTests DiffReporter在测试失败时不会弹出差异窗口

问题描述:

ApprovalTests DiffReporter为如果测试失败,则不会弹出差异窗口运行测试。 以下是我的代码。ApprovalTests DiffReporter在测试失败时不会弹出差异窗口

[UseReporter(typeof(DiffReporter))] 
[TestClass] 
public class ProjectEmployeeJsonTests 
{ 
    [TestMethod] 
    public void ToCommand() 
    { 
     var source = new EmployeeJson 
     { 
      firstName = "ABC", 
      lastName = "TestCarrier" 
     }; 

     var destination = new EmployeeCommand(); 
     var mapper = GetMapper(); 
     mapper.Execute(source, destination); 

     Approvals.Verify(
      JsonConvert.SerializeObject(
       destination, 
       Formatting.Indented)); 
    } 
} 

它在我的同事的一台机器上弹出相同代码的差异窗口。我们使用相同版本的Visual Studio具有相同的设置,并且我们都没有安装任何diff工具。

但是,我能够在VS 2012中运行测试(弹出差异窗口),但不能在VS2013中运行测试。

版本: ApprovalTests.dll:3.0.0.0 的Visual Studio:2012专业版,专业版2013

这里任何帮助将得到高度赞赏。谢谢!

你可以运行这个,看看会发生什么?

Approvals.SetCaller(); 
Assert.IsTrue(VisualStudioReporter.INSTANCE.IsWorkingInThisEnvironment("a.txt")); 
+0

我运行上面的代码行,测试失败,因为“IsWorkingInThisEnvironment(”a.txt“)”返回false。 我进行了一些测试,这里有一些有趣的地方: 1)先打开VS2013,然后打开VS2012,diff窗口没有弹出,并且两者都失败。 2)关闭VS2013并在VS2012中运行测试,弹出diff窗口并通过Assert。 3)打开VS2013(VS2012仍然打开),当我在VS2013中运行测试时,差异窗口出现在VS2012中,VS 2013中的断言通过。 –

根据文档,应用“DiffReporter”属性将“启动您的系统上最匹配的DiffReporter的实例”。

不知道为什么它没有检测到我的机器上安装的visual studio和Sourcegear的diff merge附带的diff合并记者。

安装tortoise svn为我工作,它现在弹出差异窗口龟tool工具。