3

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

我正在尝试 NCrunch 和批准。验证失败(如预期的那样)以获得新的批准。

但是,WinMerge 不会启动。

我明白失败

ApprovalTests.Core.Exceptions.ApprovalMissingException:批准失败:未找到批准文件“...\mytest.approved.txt”。在 ApprovalTests.Approvers.FileApprover.Fail()

我可以在 NUnit 运行器中运行相同的代码并启动 WinMerge。

NCrunch 带来 WinMergeReporter 的秘诀是什么?

4

1 回答 1

8

这实际上是设计使然,因为每次 NCrunch 失败时都会弹出 winmerge 非常烦人。尤其是当它窃取焦点时。

但是,如果您愿意,这就是它的工作原理以及如何更改它(您可以随时将其更改回来)

Approval Tests 有一个 MultiReporter 系统,它使用来自程序集的前端加载来实现 GangOfFour“责任链”模式。它会像有一个

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]

这实际上不必存在。如果没有实际存在,批准测试将假定它为默认值。

因此,如果您想将其关闭,则可以

[assembly: FrontLoadedReporter(typeof(AlwaysFaillingReporter))]

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

[assembly: FrontLoadedReporter(typeof(WinMergeReporter))]

祝测试愉快!

于 2012-07-25T09:02:07.357 回答