NCrunch正在推出ApprovalTests DiffReporter

时间:2016-07-15 19:01:22

标签: c# approval-tests

如何在后台运行测试时让NCrunch停止启动DiffReporter,但在手动运行测试时轻松获取DiffReport?

我一直试图让它工作一段时间,但我尝试过的组合都没有给我我想要的结果。我目前正在将[UseReporter(typeof(DiffReporter))]属性注释掉。当测试开始失败时,我会回来并取消注释,直到我解决问题,然后将其评论回来,但对于具有多个[TestCase]的方法来说,这尤其麻烦。从我在ApprovalTests博客上看到的内容看来,这似乎是可能的。

我的差异软件是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

1 个答案:

答案 0 :(得分:1)

它应该是默认行为。你想要的实际代码是

/* @var $adapter \Zend\Db\Adapter\Adapter */
$adapter = $serviceManager->get('Zend\Db\Adapter\Adapter');
$tableGateway = new TableGateway('mytablename', $adapter);
return new MySessionSaveHandler($tableGateway, new DbTableGatewayOptions());

但是NcrunchReporter是DefaultFrontLoadedReporter的一部分。 这些记者会在您使用的任何记者面前走,如果发现情况就会阻止。

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

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]

应该是这样,如果不是NCrunch已经改变,我们将需要相应地更新记者。