Да, это возможно:
Ручной подход
Одним из подходов к этому является создание в конвейере пользовательской задачи Powershell, которая устанавливает переменную в зависимости от того, был ли определенный файл изменен при последнем коммите. Так что у вас может быть такой конвейер:
![Example build pipeline](https://i.stack.imgur.com/3WsYO.png)
Ваш шаг «Установить критерии для файлов при последнем коммите» будет содержать встроенный сценарий powershell для установки переменной Build в зависимости от того, была ли определенная строка в списке файлов из последнего коммита, где «YOURFILE.cs» является файл, который вас интересует (вы можете заменить его любой логикой):
$ChangedFiles = & git show --pretty="" --name-only
if ($ChangedFiles -like '*YOURFILE.cs*') {
Write-Output ("##vso[task.setvariable variable=RunTests;]true")
}
else{
Write-Output ("##vso[task.setvariable variable=RunTests;]false")
}
Затем на шаге «Выполнить тесты» вы можете установить параметр условного управления, который будет смотреть на эту переменную, чтобы решить, следует ли запускать этот набор тестов:
![Custom control option](https://i.stack.imgur.com/AwJQz.png)
Анализ влияния теста Visual Studio
Если вы используете задачу Visual Studio Test для запуска ваших тестов, есть также встроенная опция, позволяющая запускать только тесты, на которые влияет сборка, с помощью функции Test Impact Analysis.
![Impacted tests](https://i.stack.imgur.com/9XT8r.png)
Это может быть полезно для вас, но не дает прямого ответа на ваш конкретный вопрос и имеет более широкий охват. Дополнительная информация доступна на страницах документации по Azure Devops