NCrunch запускает ApprovalTests DiffReporter

Как заставить 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 ответ

Решение

Это должно быть поведение по умолчанию. Фактический код, который вы хотите

[assembly: FrontLoadedReporter(typeof(NCrunchReporter))]

Но NcrunchReporter является частью DefaultFrontLoadedReporter. Эти репортеры идут перед любым репортером, которого вы используете, и блокируете, если обнаружена ситуация.

Возможно, NCrunch изменился, хотя. Не могли бы вы попробовать запустить это через NCrunch и сообщить о результатах

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

Это должно быть правдой, если это не NCrunch изменился, и нам нужно будет соответствующим образом обновить репортер.

Другие вопросы по тегам