Ответ 1
Извините, что ответил на старый вопрос, но я подумал, что могу улучшить текущий ответ, каким образом мне удалось профилировать тест NUnit в VS Community 2015 ранее.
Профилирование NUnit Test Runner в качестве исполняемого файла
- Убедитесь, что вы используете VS2015 как Администратор.
- Нажмите Анализировать > Профилировщик производительности... на панели инструментов.
- Выберите Мастер производительности и нажмите Начать.
- Страница 1: В моем случае я хотел видеть распределения, поэтому я нажал распределение памяти .NET.
- Страница 2: Оставьте параметр проверен и продолжен исполняемый файл (.EXE).
-
Страница 3: На этой странице вы должны определить исполняемый файл для запуска.
Это будет тестовый бегун
nunit3-console.exe
для NUnit или любой эквивалент для вашей тестовой среды.- Каков полный путь к исполняемому файлу?
C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe
- Аргументы командной строки:
bin\Debug\Test.dll --inprocess --test TestNamespace.TestClassName.Test_Method_Name
- Рабочий каталог:
\\MAC\Home\Documents\GitHub\ApplicationName\Test
- Каков полный путь к исполняемому файлу?
Вам нужно будет заменить эти пути теми, которые имеют смысл для вашей системы. Переключатель --inprocess
приводит к тому, что тесты выполняются встроенными в процесс NUnit. Без этого переключателя возникает дочерний процесс, и хотя профилировщик будет работать, вы просто будете профилировать nunit3-console.exe, а не свой собственный код.
-
Страница 4: Нажмите Готово.
Имейте в виду, что профилировщик будет генерировать файлы отчетов и сохранять их в рабочем каталоге. В моем случае, поскольку мой рабочий каталог был UNC-ресурсом, мне потребовалось выбрать путь к локальной папке для сохранения отчетов до начала профайлера.
Окно терминала должно появиться на короткое время с выходом NNnit runner. Окно автоматически закрывается, поэтому, если вы видите вспышку красного текста, у вас не будет времени на чтение ошибки до ее исчезновения. Вы можете скопировать команду из Page 3 в командную строку для более неторопливого чтения.
-
После запуска команды (независимо от того, выполнено это или нет), вы должны получить отчет, в котором вы можете отслеживать, сколько распределений вызвано вашим тестом.
К сожалению, выделения в небольшом тесте, вероятно, будут омрачены выделениями, вызванными самой NUnit.Framework. Я щелкнул, чтобы увидеть, есть ли способ исключить их из результатов, но не нашел способ сделать это, поэтому я просто проигнорировал их.
Если вы хотите профилировать другой тест, вы можете открыть Проводник производительности и щелкнуть правой кнопкой мыши nunit3-console.exe > Properties
, чтобы изменить аргументы командной строки, а затем нажмите Actions > Start Profiling
, чтобы обновить отчет.
Заключение
Это решение успешно профилирует результаты одного теста NUnit, но это утверждение содержит некоторые предостережения.
Было только незначительно менее неприятным, чем создание отдельного исполняемого файла для профиля, а тот факт, что выделения NUnit в отчете могут сделать его не стартером, если вам нужно сделать действительно чувствительное профилирование.
Может быть, кто-то, у кого больше опыта работы с VS 2015, может помочь мне улучшить этот ответ с некоторыми советами о том, как исключить DLL NUnit.Framework из отчета?