我有一个使用vstest.console.exe运行的单元测试 dll 。在单元测试中,我使用TraceSource记录了一些调试信息。当我在 Visual Studio 中运行单元测试时,我可以在输出窗口中看到日志,但是当我通过带有 /Logger:trx 选项的 vstest.console.exe 运行它时,输出日志不存在。
我尝试用静态Trace替换 TraceSource,这确实有效,并且日志显示在 trx 文件中。知道为什么 TraceSource 中的日志不显示而不是在使用 Trace 时显示吗?
我对 TraceSource 的使用如下:
TraceSource traceSource = new TraceSource("TraceSourceTraceLogger");
traceSource.Listeners.Clear();
traceSource.Listeners.Add(new DefaultTraceListener());
traceSource.Listeners.Add(new ConsoleTraceListener());
var sourceSwitch = new SourceSwitch("TraceSourceTraceLoggerSwitch") { Level = SourceLevels.All };
traceSource.Switch = sourceSwitch;
traceSource.TraceInformation("This is a debug message");
App.config 有:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
提前致谢。