【发布时间】:2017-09-17 03:17:04
【问题描述】:
我正在使用 vs 2017,编写一个 netcoreapp2.0 库,并使用 UnitTest 项目对其进行测试(XUnit 和 NUnit 给出相同的结果)。
我注意到,除非我强制处理我的 Serilog 记录器,否则只有第一行会在 Seq 中结束。
这是我的 2 节课。图书馆一号:
public class Class1
{
public static Logger _log;
public Class1(Logger log)
{
_log = log;
_log.Verbose("Class 1 constructor fineshed");
}
public void LogMessage(string s)
{
_log.Debug("Got message: {Message}", s);
}
}
还有单元测试:
public class UnitTest1
{
public static Logger _log = new LoggerConfiguration()
.WriteTo.Seq("http://localhost:5341", Serilog.Events.LogEventLevel.Verbose)
.MinimumLevel.Verbose()
.CreateLogger();
[Fact]
public void Test1()
{
_log.Debug("Test 1 logging");
var c = new Class1(_log);
c.LogMessage("Logging from test");
_log.Information("Test fineshed");
_log.Dispose(); // Without this, only "Test 1 logging" is logged.
}
}
引用的程序集(来自单元测试项目):
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />
<PackageReference Include="serilog" Version="2.5.0" />
<PackageReference Include="serilog.sinks.seq" Version="3.3.3" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
有什么建议吗?
(这里是一个演示项目的链接,用vs 2017打开恢复包并运行测试:demo project)
【问题讨论】:
标签: c# .net-core xunit seq serilog