#azure #junit #azure-devops #azure-pipelines #pytest
Вопрос:
Я пытаюсь связать результаты автоматизированного тестирования из задачи конвейера PublishTestResults с тестовыми случаями в azure. Таким образом, я могу просматривать историю результатов теста через тестовый случай
Фон
Эти тесты автоматизированы с помощью pytest и генерируют XML-отчет Junit для Azure. Пожалуйста, поправьте меня, если я ошибаюсь, но, судя по тому, что я обнаружил, нет аргумента, опции или параметра, в которых azure могла бы автоматически связывать эти тестовые случаи. Кроме того, формат XML, который ожидает Azure, не содержит атрибута для идентификатора. https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/test/publish-test-results?view=azure-devopsamp;tabs=trx,yaml
Я не могу связать эти тесты с помощью visual studio, так как pytest не поддерживается. https://docs.microsoft.com/en-us/azure/devops/test/associate-automated-test-with-test-case?view=azure-devops
Проблема
Я начал использовать API Azure REST и api python azure devops, https://github.com/microsoft/azure-devops-python-api . Получил свой идентификатор сборки, идентификатор тестового запуска, связанный со сборкой конвейера, тестовый запуск из идентификатора, идентификатор тестового набора и идентификатор тестовой точки. Выполнение теста GET возвращает результат теста и фокусируется на конкретном объекте ответа.
"testCase": {
"name": "test title"
},
Однако, когда я выполняю тест на ИСПРАВЛЕНИЕ, чтобы обновить результат теста с помощью
"testCase": {
"id": "5688",
"name": "test title"
},
"testPoint": {
"id": "296"
},
Он не обновляется и остается прежним. Я могу подтвердить, что могу обновлять другие поля, и я также вижу последние обновления даты. Ссылаясь на этот звонок. https://docs.microsoft.com/en-us/rest/api/azure/devops/test/results/update?view=azure-devops-rest-6.0
Я попробовал выполнить тест вручную и смог добавить результаты теста с идентификаторами тестового случая. Однако после этого я не смог отредактировать идентификатор тестового случая. Я попытался добавить результат теста с идентификаторами тестового случая в свои автоматические тестовые запуски, но это не сработало
У кого-нибудь есть какие-либо идеи о том, что я делаю неправильно, или о том, как лучше связать результаты тестов с тестовыми случаями в Azure?
Ответ №1:
Я разместил сообщение на форуме сообщества разработчиков Visual Studio.
Нам в значительной степени приходится проходить маршрут «Обновление рабочего элемента». Чтобы связать результаты автоматизированного тестирования с тестовым случаем, я добавил ссылку на результат теста:
[
{
"op": "add",
"path": "/relations/-",
"value": {
"rel": "ArtifactLink",
"url": "vstfs:///TestManagement/TcmResult/1234.100000",
"attributes": {
"name": "Test Result"
}
}
}
]
Это добавит ссылку из тестового примера, которая направит вас на недопустимый URL-адрес, поэтому вы просто попадете на страницу Сводки сборки. Не очень хорошо, так как он отсутствует /results
в URL-адресе:
https://dev.azure.com/{organization}/{project}/_build?buildId=1122amp;view=ms.vss-test-web.build-test-results-tabamp;runId=1234amp;resultId=100000amp;paneView=debug
Но помимо этого, это работает.