Влияние теста на частично сопоставленные репозитории 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 можно включить частичные репозитории. Например, рассмотрим репозиторий, имеющий следующую структуру.
Теперь в конвейере сборки и выпуска вы увидите плитку "Получить источники" в разделе "Процесс ", как показано в следующем примере.
Выберите " Получить источники" и вы увидите параметры в правой колонке, чтобы частично сопоставить репозиторий.
Если вы заверяете весь репозиторий, как показано в предыдущем примере, TIA продолжает работать нормально, но если вы заверяете частично, как показано в следующем примере, TIA не сможет найти затронутые тесты.
Если репозиторий TFVC частично включен, TIA не сможет найти затронутые тесты, так как сборщик может собирать изменения только для частично заверяемого репозитория в агенте и не имеет видимости всего пути. При изменении кода с сервера он предоставляет весь путь, и попытка сопоставления с сопоставленным путем завершается ошибкой.
Обходное решение
Чтобы обойти эту проблему, можно сопоставить частичный репозиторий с полной структурой кода на сервере, чтобы полный путь к файлам в локальном перечислении соответствовал полному пути сервера. Для этого можно указать локальный путь, соответствующий пути сервера, как показано в следующем примере.
Это гарантирует правильность списка путей сервера, собранных сборщиком и затронутыми тестами.