Как я могу получить выходные данные для «потоковой передачи» своих выходных данных в программе просмотра сеансов модульных тестов Resharper, а не выводить их в конце теста? - PullRequest
0 голосов
/ 16 октября 2018

Я использую

  • Visual Studio 2015 (обновление 14.0.25431.01 3)
  • Resharper Ultimate 2018.2.3 (сборка 2018-09-12)
  • Windows 10 x64 v1803
  • .NET Framework 4.5.2

Я хочу, чтобы у меня была возможность запустить модульный тест в модуле тестирования модульного теста и получить STREAM для выводаокно вывода.

(Кстати, одна из причин, почему это так важно для меня, из-за это . Так что да, это немного злоупотребления модульным тестом, нок сожалению, я до сих пор не нашел хорошую систему для ее замены.)

Что я пробовал:

NUnit

  1. Создатьновый консольный проект (целевая платформа .NET Framework 4.5.2)
  2. Nuget установить NUnit 3.11.0
  3. Создать модульный тест:

    [Test]
    public void HelloWorld()
    {
        Debug.Listeners.Add(new DefaultTraceListener());
        Console.WriteLine("asdf");
        Debug.WriteLine("asdf");
        Thread.Sleep(10000);
        Console.WriteLine("asdf2");
        Debug.WriteLine("asdf2");
    }
    

Когда я запускаю это, он отображает выходные данные только после того, как тест полностью завершен, через 10 секунд. Я хочу, чтобы в основном немедленно отображался первый «asdf».

TСлучайные вещи, которые я пробовал, были из этой темы .

Из того, что я могу сказать, Бегущий по модульному тесту даже не выглядит так, будто готов начать принимать вывод после тестабежит.Посередине это выглядит так:

enter image description here

В этот момент выполняется Thread.Sleep.Я надеюсь увидеть asdf

Как только это будет сделано, это выглядит так:

enter image description here

Я знаю, что в прошломРаньше это работало так, как я хотел, но это было возможно с более старыми версиями всего программного обеспечения (Visual Studio, Resharper, .NET Framework, NUnit)

xUnit 1. Создание нового консольного проекта 2Nuget install NUnit 3.11.0 3. Создайте модульный тест:

    [Fact]
    public void HelloWorld()
    {
        Debug.Listeners.Add(new DefaultTraceListener());
        Console.WriteLine("asdf");
        Debug.WriteLine("asdf");
        Thread.Sleep(10000);
        Console.WriteLine("asdf2");
        Debug.WriteLine("asdf2");
    }

В этом случае я вообще ничего не получаю.

enter image description here

Я думаю, это может быть связано с ошибкой, на которую ссылается предыдущий пост, но она отличается тем, что он по крайней мере что-то получает.Тот факт, что я испытываю поведение, с которым он связан, когда он использует xUnit, но я использую NUnit, но то, что я испытываю другое поведение, когда я использую xUnit, мне немного не нравится.

Мой вариант использования вряд ли сложенздесь, поскольку я сделал немного больше, чем создал совершенно новый проект, добавил пакеты и затем попытался использовать его.Есть ли способ, которым я могу надежно заставить это работать?

...