0
我有一个DLL,它在我正在编写测试的复杂一面。大多数被测试的类都有自己的TraceSource
对象,用于输出跟踪信息。在MSTest中启用跟踪源
namespace MyDll
{
public class Class1
{
static TraceSource tracing = new TraceSource(nameof(Class1));
//Instance members and functions...
}
public class Class2
{
static TraceSource tracing = new TraceSource(nameof(Class2));
//Instance members and functions...
}
public class Class3
{
static TraceSource tracing = new TraceSource(nameof(Class3));
//Instance members and functions...
}
}
里面的MyDll
项目是一个App.config
文件,增加了一个共同ConsoleTraceListener
所有TraceSource
的,就像这样:
<configuration>
<system.diagnostics>
<sources>
<source name="Class1"
switchName="sourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="console"/>
</listeners>
</source>
<source name="Class2"
switchName="sourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="console"/>
</listeners>
</source>
<source name="Class3"
switchName="sourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<add name="console"/>
</listeners>
</source>
</sources>
<switches>
<add name="sourceSwitch" value="Verbose"/>
</switches>
<sharedListeners>
<add name="console"
type="System.Diagnostics.ConsoleTraceListener">
<filter type="System.Diagnostics.EventTypeFilter"
initializeData="Verbose"/>
</add>
</sharedListeners>
</system.diagnostics>
</configuration>
App.config
配置为始终复制到输出目录。我不确定这是否相关。
下面是问题:如果我运行1测试,我会从测试的输出中获取所有跟踪信息。但是,如果我运行所有测试,则只有第一次测试运行时才会有来自测试代码的跟踪。所有其他测试都没有任何输出。
如何获得MSTest输出所有TraceSource
所有测试的所有跟踪信息?