Поделиться через


Влияние теста на частично сопоставленные репозитории TFVC в TFS/Azure DevOps Services

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Анализ влияния на тест (TIA) является частью задачи VSTest , начиная с версии 2 задачи. Эта функция помогает ускорить цикл DevOps, помогая выполнять только соответствующие тесты для сборки. В конечном итоге вы выполняете тесты, которые затронуты входящими изменениями, а не весь набор тестов. Дополнительные сведения о анализе влияния на тест см. в статье "Ускорение тестирования" с помощью анализа влияния тестов (TIA).

Помимо поддержки GitHub и Git в Azure DevOps, TIA также поддерживает TFVC. В этой статье описывается известное ограничение, связанное с TIA, в конвейерах сборки и выпуска на основе TFVC и способ обхода этого ограничения.

Проблема с частично сопоставленными репозиториями TFVC

Способ работы TIA заключается в сборе данных о файлах, которые затрагиваются методом тестирования во время его первого запуска, также называемого базовым запуском. Сборщик, который собирает эти данные, имеет видимость только включенного репозитория на компьютере агента. В конвейерах на основе TFVC у вас есть возможность добавлять частичные репозитории. Например, рассмотрим репозиторий, имеющий следующую структуру.

Структура репозитория TFVC

Теперь в конвейере сборки и выпуска вы увидите плитку "Получить источники" в разделе "Процесс ", как показано в следующем примере.

Получение источников

Выберите "Получить источники", и вы увидите опции на правой панели для частичного сопоставления вашего репозитория.

Репозиторий карт

Если вы заверяете весь репозиторий, как показано в предыдущем примере, TIA продолжает работать нормально, но если вы заверяете частично, как показано в следующем примере, TIA не сможет найти затронутые тесты.

Частично сопоставить репозиторий

Если репозиторий TFVC частично включен, TIA не сможет найти затронутые тесты, так как сборщик может собирать изменения только для частично заверяемого репозитория в агенте и не имеет видимости всего пути. При изменении кода с сервера он предоставляет весь путь, и попытка сопоставления с сопоставленным путем завершается ошибкой.

Обходной путь

Чтобы обойти эту проблему, можно сопоставить частичный репозиторий с полной структурой кода на сервере, чтобы полный путь к файлам в локальном перечислении соответствовал полному пути сервера. Для этого можно указать локальный путь , соответствующий пути сервера, как показано в следующем примере.

Исправление частично сопоставленного репозитория

Это обеспечивает соответствие пути сервера пути, собранному сборщиком, и правильное перечисление затронутых тестов.