Просмотр отчетов о модульных тестах и покрытиях, созданных в AWS CodeBuild
Я использую AWS CodeBuild для запуска модульных тестов для моего проекта на Python с использованием pytest. Я использую аргумент --junitxml и пакет pytest-cov для генерации отчетов о тестировании и отчетов о покрытии, которые я перечислил как артефакты в моем buildspec.yml.
Я использовал Jenkins в прошлом, чтобы сделать это, и Jenkins предоставляет несколько хороших графиков и таблиц, показывающих историю результатов теста и историю покрытия, а также результаты самого последнего теста.
Есть ли хороший способ просмотра отчетов, сгенерированных моим проектом CodeBuild? Я не нашел ничего в CodeBuild или CodePipeline напрямую. Нужно ли использовать отдельный инструмент, который может принимать файлы отчетов? Если да, то какие инструменты для этого?
1 ответ
CodeBuild недавно объявила о поддержке отчетов об испытаниях. Скопировано из сообщения в блоге:
Отчеты могут быть в формате JUnit XML или Cucumber JSON. В одном месте можно просматривать такие показатели, как процент пройденных тестов, продолжительность тестового прогона и количество пройденных и неудачных / ошибочных тестов. Строители могут использовать любые среды тестирования, если отчеты создаются в поддерживаемых форматах.
Для этого необходимо обновить две вещи. Во-первых, добавьте конфигурацию вbuildspec.yml
файл:
reports:
SurefireReports: # CodeBuild will create a report group called "SurefireReports".
files: #Store all of the files
- '**/*'
base-directory: 'target/surefire-reports' # Location of the reports
Во-вторых, CodeBuild нужны дополнительные разрешения IAM:
{
"Statement": [
{
"Resource": "arn:aws:codebuild:your-region:your-aws-account-id:report-group/my-project-*",
"Effect": "Allow",
"Action": [
"codebuild:CreateReportGroup",
"codebuild:CreateReport",
"codebuild:UpdateReport",
"codebuild:BatchPutTestCases"
]
}
]
}
Одним из решений может быть позволить pytest генерировать отчеты html, например, с помощью плагина pytest-html (pytest-cov имеет встроенную поддержку генерации отчетов html). Затем вы можете использовать команду AWS S3 CP в вашем buildspec.yml
файл для копирования отчетов в корзину S3. Кроме того, вы можете прикрепить отчеты к артефакту сборки в buildspec.yml
файл. Обратите внимание, что не всем нравится идея смешивать протоколы испытаний с исполняемым кодом. Это зависит от того, как обрабатываются сгенерированные артефакты, количество требуемой последующей обработки, как они доставляются и разворачиваются, будут ли они использоваться третьей стороной и т. Д.