Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Тестовые запуски в Visual Studio включают создание проекта для обновления двоичных файлов на диске перед использованием тестовой платформы для выполнения тестов. Время сборки в Visual Studio может отличаться в зависимости от типа изменений, внесенных в код. Для более крупных решений сборки могут быть самой дорогой частью тестового запуска.
В Visual Studio 2022 и более поздних версиях выполнение теста с горячей перезагрузкой можно включить, чтобы ускорить выполнение теста, пропуская сборки для поддерживаемых сценариев.
Что поддерживается?
- Проекты C# и VB, предназначенные для .NET 6.0 и более поздних версий
- Тестовые проекты, созданные для конфигурации DEBUG
- Visual Studio 2022 и более поздних версий
Включение тестового выполнения с помощью горячей перезагрузки
Эту функцию можно включить в областипараметров>. Разверните раздел «Все параметры> и установите флажок «(Экспериментально) Включить запуск тестов с горячей перезагрузкой для проектов тестов на C# и VB, предназначенных для .NET 6 и более поздних версий».
Эту функцию можно включить в диалоговом окне"Параметры>". Разверните раздел Общие и установите флажок «(Экспериментальная функция) Включить горячую перезагрузку тестовых запусков для проектов тестов C# и VB, нацеленных на .NET 6 и более поздние версии».>
Почему это считается экспериментальным?
Эта функция предоставляет новый подход к выполнению теста, который изменяет широко используемый путь для проверки кода. Взаимодействие с пользователем для этой функции может измениться по мере того, как мы продолжаем получать отзывы. По этим причинам функция в настоящее время помечена как экспериментальная.
Принцип работы
После включения параметра обозреватель тестов автоматически использует выполнение теста с горячей перезагрузкой, когда это возможно. Если горячая перезагрузка невозможна, происходит возврат к стандартному поведению сборки и выполнения тестов. В качестве пользователя, выполняющего тесты, вам не нужно вносить изменения в рабочий процесс (т. е. продолжать изменять код и выполнять тесты).
Под капотом мы используем ту же инфраструктуру «Изменить и продолжить», которая существует в недавно выпущенной функции горячей перезагрузки для редактирования кода C#/VB во время выполнения для отслеживания внесенных изменений. По этой причине горячая перезагрузка выполняется только в том случае, если нет "грубых изменений", в этом случае мы возвращаемся к созданию тестов перед их выполнением. Дополнительные сведения о поддерживаемых изменениях см. в документации по редактированию и продолжению
Сколько быстрее выполняется тестирование?
Существует множество переменных, которые вступают в игру при оценке времени, которое эта функция экономит вас. Рассмотрим пример.
- Сколько времени занимает сборка проекта.
- Какой вид редактирования был сделан.
- Насколько велик файл, где была сделана правка.
- Где было сделано изменение (если это был конечный проект или нет).
В итоге улучшения скорости напрямую связаны с временем сборки, которое имело бы место в этом конкретном тестовом запуске.
Примечания.
Первый тестовый запуск после включения параметра или открытия Visual Studio активирует сборку проекта.
Файлы в редакторе могут не сохраняться при выполнении тестов. Чтобы устранить эти и перед возвратом, убедитесь, что выполняется полная сборка (CTRL+SHIFT+B).
Двоичные файлы на диске не обновляются, когда выполняется горячая перезагрузка тестов.
Выполнение тестов с горячей перезагрузкой не работает с "Тест>Запуск всех тестов", "Запуск всех тестов в представлении" в Test Explorer, а также не работает с Запуск всех тестов из узла решения в обозревателе решений. Эта функция не работает с этими командами, потому что они в настоящее время гарантируют создание всего решения.
При выполнении тестов с неподдерживаемых целевых платформ (ниже .NET 6.0) происходит сборка проекта.
Если вы видите несоответствия между тем, что находится на диске и что показывает обозреватель тестов, попробуйте выполнить сборку решения или проекта с помощью сочетания клавиш CTRL + SHIFT + B , а затем выполнить тесты. Любая явная сборка заменяет результаты теста горячей перезагрузки обычными результатами теста полной сборки.
Известные проблемы
Выполнение теста с горячей перезагрузкой не выполняется в следующих сценариях:
- Объем протестированного кода
- Динамическое модульное тестирование
- Составление профиля
- Отладка
Трассировки стека могут быть нечитабельными из-за наличия нечитаемых токенов. Эта проблема отслеживается здесь и планируется для исправления в .NET 7.0.
- Рекомендуемое решение в этом случае заключается в создании проекта и повторном запуске теста.
Ваши отзывы важны
Чтобы эта экспериментальная функция была завершена, мы требуем ваших отзывов. Если у вас есть предложение улучшить интерфейс или столкнуться с любыми проблемами, воспользуйтесь моментом, чтобы предоставить входные данные. Только с вашим отзывом мы можем убедиться, что критически важные проблемы устранены, и будущие решения будут определены в соответствии с вашими входными данными.
Чтобы отправить отзыв, используйте механизм обратной связи Visual Studio.