私は、テストを書いている複雑な側にある DLL を持っています。TraceSource
テスト対象のほとんどのクラスには、トレース情報の出力に使用される独自のオブジェクトがあります。
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 つのテストを実行すると、テストからの出力にすべてのトレース情報が表示されます。ただし、すべてのテストを実行すると、最初のテスト実行のみがテスト対象のコードからトレースされます。他のすべてのテストには出力がありません。
TraceSource
MSTest にすべてのテストのすべてのトレース情報を出力させるにはどうすればよいですか?