Как прочитать из счетчика производительности «NumberOfActiveConnections» категории «Поставщик данных .NET для SqlServer» из модульного теста в MS Test?
Я пытаюсь сделать следующее, но похоже, что имя экземпляра неверно. Документация 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);
Я включаю счетчик «NumberOfActiveConnections», добавляя его в app.config согласно документации MSDN :
<system.diagnostics>
<switches>
<add name="ConnectionPoolPerformanceCounterDetail" value="4"/>
</switches>
</system.diagnostics>
Возможно, проблема в том, что счетчики производительности включены для хост-домена MS Test, но не для домена, в котором фактически выполняются тесты?