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 изменился, и нам нужно будет соответствующим образом обновить репортер.