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"));
答
根据文档,应用“DiffReporter”属性将“启动您的系统上最匹配的DiffReporter的实例”。
不知道为什么它没有检测到我的机器上安装的visual studio和Sourcegear的diff merge附带的diff合并记者。
安装tortoise svn为我工作,它现在弹出差异窗口龟tool工具。
我运行上面的代码行,测试失败,因为“IsWorkingInThisEnvironment(”a.txt“)”返回false。 我进行了一些测试,这里有一些有趣的地方: 1)先打开VS2013,然后打开VS2012,diff窗口没有弹出,并且两者都失败。 2)关闭VS2013并在VS2012中运行测试,弹出diff窗口并通过Assert。 3)打开VS2013(VS2012仍然打开),当我在VS2013中运行测试时,差异窗口出现在VS2012中,VS 2013中的断言通过。 –