Можно ли в Azure DevOps автоматически добавить план тестирования со всеми наборами тестов в конвейер сборки (YAML)?

Я использую планы тестирования и наборы тестов Azure DevOps для выполнения автоматических тестов в конвейере сборки YAML. Для каждого выпуска я создаю новый план тестирования с новыми наборами тестов. Actual I вручную ищу идентификаторы плана тестирования и наборов тестов и копирую их в файл YAML.

- task: VSTest@2
  displayName: 'Run automated UI tests'
  inputs:
   testSelector: testPlan
   testPlan: 585
   testSuite: 586,929,930,680,683,684,685,931,681,686,687,688,767,682,689,690,691,768,692
   testConfiguration: 2
   uiTests: true
   testRunTitle: 'Automated UI testing'

Есть ли возможность сделать это автоматически? Или возможность уменьшить ручное усилие, например просто измените идентификатор плана тестирования в конвейере, и все наборы тестов будут включены автоматически?


person mkr    schedule 03.12.2020    source источник
comment
Не получаете последнюю информацию, полезен ли для вас приведенный ниже ответ? Или, если у вас есть какие-либо опасения, не стесняйтесь поделиться им здесь.   -  person    schedule 08.12.2020
comment
Нет, извините, раньше я пытался изменить файл YAML с помощью задачи CmdLine @ 2. Но похоже, что когда конвейер был запущен, изменения в файле YAML никак не повлияли.   -  person mkr    schedule 09.12.2020
comment
@mkr Как насчет использования rest api в задаче PowerShell? Вы можете просмотреть мой ответ, чтобы узнать, будет ли он вам полезен.   -  person Hugh Lin    schedule 22.12.2020


Ответы (2)


Файл YAML находится в вашем репозитории. Таким образом, вы можете редактировать этот файл через REST API. Вот пример: Обновить файл. В этом случае у вас может быть какой-то шаблон вашего YAML-файла, указать идентификатор плана тестирования и наборы тестов (Получить тест suites for plan), а затем обновите файл YAML новыми идентификаторами.

person Shamrai Aleksander    schedule 03.12.2020

Есть ли возможность сделать это автоматически? Или возможность уменьшить ручное усилие, например просто измените идентификатор плана тестирования в конвейере, и все наборы тестов будут включены автоматически?

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

Используйте наборы тестов - Получить наборы тестов для плана rest api:

GET https://dev.azure.com/{organization}/{project}/_apis/testplan/Plans/{planId}/suites?api-version=6.0-preview.1

Пример сценария:

$url = 'https://dev.azure.com/{organization}/{project}/_apis/testplan/Plans/{planId}/suites?api-version=6.0-preview.1';

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"} -Method Get

$testSuites = $response

Write-Host "results = $($testSuites | ConvertTo-Json -Depth 100)"

В задаче VSTest:

- task: VSTest@2
  displayName: 'Run automated UI tests'
  inputs:
   testSelector: testPlan
   testPlan: 585
   testSuite: $(testSuites)
   testConfiguration: 2
   uiTests: true
   testRunTitle: 'Automated UI testing'
person Hugh Lin    schedule 21.12.2020