0

私は、テストを書いている複雑な側にある 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共通の を追加するファイルがあります。ConsoleTraceListenerTraceSource

<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 つのテストを実行すると、テストからの出力にすべてのトレース情報が表示されます。ただし、すべてのテストを実行すると、最初のテスト実行のみがテスト対象のコードからトレースされます。他のすべてのテストには出力がありません。

TraceSourceMSTest にすべてのテストのすべてのトレース情報を出力させるにはどうすればよいですか?

4

1 に答える 1