MS Test の単体テストから、カテゴリ ".NET Data Provider for SqlServer" のパフォーマンス カウンター "NumberOfActiveConnections" を読み取るにはどうすればよいですか?
私は次のことを試みていますが、インスタンス名が間違っているようです。MSDNのドキュメントでは、これが WinForms アプリのインスタンス名を取得する正しい方法であると主張していますが、これは MS Test では機能しません。
string instanceName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;
上記のコードを MS Test から実行するnull
と、呼び出しから戻ってきますGetEntryAssembly()
また、MS Test プロセスの名前やその他のバリエーションを使用してみましたが、うまくいきませんでした。
これは、上記のインスタンス名のいずれかを使用しているときに例外をスローするサンプル コードです。
PerformanceCounter counter = new PerformanceCounter(
".NET Data Provider for SqlServer",
"NumberOfActiveConnections",
instanceName,
true);
Assert.AreEqual<long>(0, counter.RawValue);
MSDN のドキュメントに従って、これを app.config に追加して、「NumberOfActiveConnections」カウンターを有効にしています。
<system.diagnostics>
<switches>
<add name="ConnectionPoolPerformanceCounterDetail" value="4"/>
</switches>
</system.diagnostics>
おそらく問題は、パフォーマンス カウンターが MS Test ホスト ドメインに対して有効になっているが、テストが実際に実行されるドメインに対して有効になっていないことでしょうか?