Сообщение [xUnit] Переправить Debug.WriteLine() в ITestOutputHelper от 30.10.2017 10:45
Изменено 30.10.2017 10:50 VladCore
[xUnit] Переправить Debug.WriteLine() в output соответствующ
Хочется весь Debug.WriteLine переправлять в оутпут xUnit.
Посмотрел сюда https://xunit.github.io/docs/capturing-output.html и наколхозил класс DebugOutputAdapter:
На удивление Resharper "плавно" показывает output в PassingTest. То есть сразу показывает
потом ждет 4 секунды и показывает
Вопрос. Как не писать в каждом-каждом тест-классе такой как выше конструктор?
P.S. Понятно выполнение тестов надо сериализовывать что бы output не перемешивался.
P.P.S. и ещё вопрос — xUnit сортирует ли имена классов и методов при сериализации выполнения как и NUnit консольные и решарперовские раннеры?
Посмотрел сюда https://xunit.github.io/docs/capturing-output.html и наколхозил класс DebugOutputAdapter:
public class FirstTest
{
public FirstTest(ITestOutputHelper output)
{
DebugOutputAdapter.Bind(output);
}
[Fact]
public void PassingTest()
{
Debug.WriteLine("Line 1: " + DateTime.Now);
Thread.Sleep(4000);
Debug.WriteLine("Line 2: " + DateTime.Now);
Assert.Equal(4, Add(2, 2));
}
[Theory]
[InlineData(3)]
[InlineData(5)]
[InlineData(6)]
public void MyFirstTheory(int value)
{
Debug.WriteLine("Check theory using " + value);
Assert.True(IsOdd(value));
}
bool IsOdd(int value)
{
return value % 2 == 1;
}
}
На удивление Resharper "плавно" показывает output в PassingTest. То есть сразу показывает
Line 1: 10/30/2017 1:25:17 PM
потом ждет 4 секунды и показывает
Line 2: 10/30/2017 1:25:21 PM
Вопрос. Как не писать в каждом-каждом тест-классе такой как выше конструктор?
public Имя_Тест_Класса(ITestOutputHelper output)
{
DebugOutputAdapter.Bind(output);
}
P.S. Понятно выполнение тестов надо сериализовывать что бы output не перемешивался.
P.P.S. и ещё вопрос — xUnit сортирует ли имена классов и методов при сериализации выполнения как и NUnit консольные и решарперовские раннеры?
[xUnit] Переправить Debug.WriteLine() в output соответствующ
Хочется весь Debug.WriteLine переправлять в оутпут xUnit.
Посмотрел сюда https://xunit.github.io/docs/capturing-output.html и наколхозил класс DebugOutputAdapter:
На удивление Resharper "плавно" показывает output в PassingTest. То есть сразу показывает
потом ждет 4 секунды и показывает
Вопрос. Как не писать в каждом-каждом тест-классе такой как выше конструктор?
P.S. Понятно выполнение тестов надо сериализовывать что бы output не перемешивался.
P.P.S. и ещё вопрос — xUnit сортирует ли имена классов и методов при сериализации выполнения как и NUnit консольные и решарперовские раннеры?
Посмотрел сюда https://xunit.github.io/docs/capturing-output.html и наколхозил класс DebugOutputAdapter:
public class FirstTest
{
public FirstTest(ITestOutputHelper output)
{
DebugOutputAdapter.Bind(output);
}
[Fact]
public void PassingTest()
{
Debug.WriteLine("Line 1: " + DateTime.Now);
Thread.Sleep(4000);
Debug.WriteLine("Line 2: " + DateTime.Now);
Assert.Equal(4, Add(2, 2));
}
[Theory]
[InlineData(3)]
[InlineData(5)]
[InlineData(6)]
public void MyFirstTheory(int value)
{
Debug.WriteLine("Check theory using " + value);
Assert.True(IsOdd(value));
}
bool IsOdd(int value)
{
return value % 2 == 1;
}
}
На удивление Resharper "плавно" показывает output в PassingTest. То есть сразу показывает
Line 1: 10/30/2017 1:25:17 PM
потом ждет 4 секунды и показывает
Line 2: 10/30/2017 1:25:21 PM
Вопрос. Как не писать в каждом-каждом тест-классе такой как выше конструктор?
public Имя_Тест_Класса(ITestOutputHelper output)
{
DebugOutputAdapter.Bind(output);
}
P.S. Понятно выполнение тестов надо сериализовывать что бы output не перемешивался.
P.P.S. и ещё вопрос — xUnit сортирует ли имена классов и методов при сериализации выполнения как и NUnit консольные и решарперовские раннеры?
Сам банальный класс DebugOutputAdapter | |
| |