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
所有測試的所有跟蹤信息?