0

我有一个使用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>

提前致谢。

4

1 回答 1

0

问题是我使用的 TraceSource 是静态类中的静态实例。

但是,非静态类中的静态 TraceSource 可以工作。

于 2016-03-03T07:12:51.437 回答