NCrunch 正在启动 ApprovalTests DiffReporter

NCrunch is launching the ApprovalTests DiffReporter

如何让 NC运行ch 在后台 运行ning 测试时停止启动 DiffReporter,但在我手动 运行 测试时轻松获得 DiffReport ?

一段时间以来,我一直在努力使它正常工作,但是 none 我尝试过的组合给出了我正在寻找的结果。我目前将 [UseReporter(typeof(DiffReporter))] 属性注释掉。当测试开始失败时,我会返回并取消注释,直到我解决问题,然后再将其注释掉,但这对于具有多个 [TestCase] 的方法来说尤其麻烦。从我在 ApprovalTests 博客上阅读的内容来看,这似乎是可行的。

我的 diff 软件是 Beyond Compare,我的代码目前是这样的:

TestProject/AssemblyInfo.cs

[assembly: UseReporter(typeof(NCrunchReporter))]

TestProject/ClassTests.cs

public class ClassTests
{
    [Test]
    //[UseReporter(typeof(DiffReporter))]
    [TestCase(1, 1)]
    [TestCase(1, 2)]
    [TestCase(2, 1)]
    [TestCase(3, 1)]
    public void TestCase(int errorNumber, int )
    {
        using (ApprovalResults.ForScenario(errorNumber, testCaseSubtestNumber))
        {
            var results = DoSomething();

            Approvals.Verify(results);
        }
    }
}

更新:
我正在使用以下 NuGet 包:
- ApprovalTests v3.0.11
- ApprovalUtilities v3.0.11
-NUnit v3.2.1

这应该是默认行为。您想要的实际代码是

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]

但是 NcrunchReporter 是 DefaultFrontLoadedReporter 的一部分。 如果检测到这种情况,这些记者会走到您使用的任何记者面前并阻止。

也许 NCrunch 已经改变了。 您能否通过 NCrunch 尝试 运行 并报告结果

Approvals.SetCaller();
Assert.IsTrue(NCrunchReporter.INSTANCE.IsWorkingInThisEnvironment("a.txt"));

应该是真的,如果不是 NCrunch 已经改变,我们将需要相应地更新报告器。