如何使用审批测试WinMergeReporter w/ncrunch



我在WinMergeReporter中使用批准测试已经有一段时间了,它与标准NUnit运行程序可执行文件配合得很好。

我正在试用NCrunch和批准。验证新审批失败(如预期)。

但是,WinMerge不会启动。

我得到了失败的

ApprovalTests.Core.Exceptions.ApprovalMissingException:审批失败:找不到审批文件"…\mytest.approved.txt"。在ApprovalTests.Approvers.FileApprover.Fail()

我可以在NUnit运行程序中运行相同的代码,WinMerge就会启动。

NCrunch推出WinMergeReporter的秘诀是什么?

这实际上是经过设计的,因为每次NCrunch失败时都会弹出winmerge,这很快就会变得非常烦人。尤其是当它抢镜的时候。

然而,以下是它工作的原因以及如何改变它,如果你愿意的话(你总是可以把它改回来)

批准测试有一个MultiReporter系统,它使用来自组件的前端负载来实现GangOfFour"责任链"模式。它的行为就像有一个

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]

这实际上并不一定要存在。如果不存在任何实际情况,批准测试将假定它为默认值。

所以,如果你想关闭它,你可以做

[assembly: FrontLoadedReporter(typeof(AlwaysFaillingReporter))]

除了那个记者不存在(尽管制作一个记者是微不足道的:-)所以你可能只想做

[assembly: FrontLoadedReporter(typeof(WinMergeReporter))]

测试愉快!

最新更新