Как профилировать модульные тесты MsTest в Visual Studio 2008? - PullRequest
4 голосов
/ 25 ноября 2010

У меня есть интеграционные тесты, которые я запускаю из Visual Studio 2008 Development Edition (они выполняются как модульные тесты MSTest, хотя на самом деле они являются интеграционными тестами). Я хотел бы провести некоторое профилирование во время выполнения тестов.

В моем случае у меня есть «заказанный» тест MSTest, который я запускаю. Я хотел бы собрать данные выборки во время выполнения каждого из заказанных тестов.

Как мне это сделать?

p.s. Возможно, я смогу сделать это из командной строки, если вручную запустим mstest из командной строки, пытаясь следовать указаниям командной строки . К сожалению, когда я пытаюсь запустить VsPerfCLREnv из командной строки Visual Studio, это «файл не найден». Какого черта?

Ответы [ 2 ]

2 голосов
/ 23 июня 2011

Я только что получил профилирование, работающее в VS2008.Если это кому-нибудь поможет, вот как я заставил его работать:

  1. Убедитесь, что вы находитесь в Debug режиме конфигурации
  2. Нажмите Analyse > Launch Performance Wizard
  3. ВыбратьProfile a dynamic link library
  4. Введите следующее:
    • Путь к DLL: DLL, которую вы хотите применить, находится в корзине \ Debug вашего проекта модульного тестирования
    • Путь к исполняемому файлу: C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\MSTest.exe
    • Аргументы параметра запуска: /testmetadata:TestList.vsmdi /runconfig:TestRunConfig1.testrunconfig
      • Настройте этот параметр на основе имени ваших файлов vsmdi и testrunconfig.
    • Рабочий каталог: вашкорневой путь решения
  5. Выберите Instrumentatation.Я не пробовал Sampling, поэтому я не могу это прокомментировать.
  6. Запустить новый проект производительности

Используя этот подход, я определил узкое место в своем коде, и модульные тестытеперь в 15 раз быстрее, и пользователи видят улучшение скорости в 10 раз.

1 голос
/ 25 ноября 2010

К сожалению, заказанные тесты не имеют опции «Создать сеанс производительности»: Ordered Tests

Если бы у вас был простой модульный тест, вы могли бы создать сеанс производительности.

Чтобы использовать профилирование из командной строки, перейдите в \ Program Files \ Microsoft Visual Studio 9.0 \ Team Tools \ Performance Tools, где вы увидите vsperfclrenv.cmd и другие инструменты, упомянутые в блоге профилировщика.

...