Отсутствует исходный код с использованием MSTest с ANTS Performance Profiler - PullRequest
1 голос
/ 10 апреля 2019

Мы работаем над проектом для клиента, который использует ASP.NET C # с EF 6 и .Net Framework 4.6.1.У нас есть несколько интеграционных и юнит-тестов, которые работают немного медленно, поэтому мы решили запустить профилировщик.В наших поисках мы наткнулись на ANTS Performance Profiler и решили попробовать.

Мы создали сеанс профилирования с исполняемым файлом .NET и настроили режим профилирования как line-level & method-level timings - All methods inc. framework.Однако при запуске профилировщика мы не видим ни одного из наших методов и сталкиваемся с сообщением об ошибке

Профилировщик не нашел методов с исходным кодом.Чтобы просмотреть все профилированные методы, в разделе «Параметры отображения» выберите «Все методы».

Как мне решить эту проблему?


Сначала мы столкнулись с этой проблемой с помощью VSTest, а затем решилиизмените на MSTest, так как он, кажется, имеет лучшую документацию ( 1 ).Это также не сработало.

Мы провели некоторое исследование и попробовали несколько ссылок ( 2 ) ( 3 ), но ни одна из них не помогла.Мы обнаружили, что возможной проблемой является то, что ANTS Profiler не находит файл .pdb.Однако мы убедились, что файл .pdb существует в той же папке и имеет то же имя, что и библиотека сборки.Мы также запустили Process Monitor и подтвердили, что процесс MSTest.exe читает правильный .pdb файл

Вот параметры запуска:

  • Путь к исполняемому файлу .NET: C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\MSTest.exe
  • Аргументы командной строки: /testcontainer:Projeto.dll /test:Projeto.Features._001_UsuarioFeature._001_A_1_1* /testsettings:"C:\Users\Documents\projeto\TestSettings1.testsettings"
  • Рабочий каталог: C:\Users\Documents\projeto\bin\Debug

Дополнительная информация:

  • Мыработает ANTS Performance Profiler версии 10.1.5.1275

  • Операционная система: Windows 10 Enterprise

1 Ответ

1 голос
/ 10 апреля 2019

Мы связались со службой поддержки RedGate, и они решили нашу проблему.

Запуск профилировщика с аргументом командной строки /testcontainer сработал сам! Оказывается, параметр / testsettings был тем, который вызвал неисправность, и затем, как только я удалил его, профилировщик смог увидеть исходный код.

Obs: Аргумент /testsettings потребовался после того, как мы изменили наш инструмент тестирования на MSTest. Он отвечал за ссылки на некоторые из наших зависимостей. После удаления параметра решение заключалось в том, чтобы жестко закодировать путь наших зависимостей только ради теста.

...