ILogger, который выводит в тест DOTNET - PullRequest
0 голосов
/ 26 марта 2019

Когда я делаю

LoggerFactory
  .Create(builder => builder.AddTraceSource(nameof(TestName)).AddConsole())
  .CreateLogger(nameof(TestName))
  .LogError("oh no");

Я ожидаю, что "о нет" будет видно в выводе dotnet test --verbosity detailed.Но это не так.Как получить ILogger, чтобы его вывод был виден в результатах тестового прогона?

Я использую Microsoft.Extensions.Logging 3.0.0-preview3.19153.1 и .NET Core SDK 2.1.500.

1 Ответ

0 голосов
/ 26 марта 2019

Это происходит потому, что ведение журнала консоли выполняется в фоновом потоке.Таким образом, чтобы «исправить» эту попытку, либо удалите службы :

((IDisposable) services)?.Dispose();

или, по крайней мере, дайте ему некоторое время для обработки - поспите секунду:

LoggerFactory
  .Create(builder => builder.AddTraceSource(nameof(TestName)).AddConsole())
  .CreateLogger(nameof(TestName))
  .LogError("oh no");

System.Threading.Thread.Sleep(1000);
...