Просмотр отчетов о модульных тестах и ​​покрытиях, созданных в 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 файл. Обратите внимание, что не всем нравится идея смешивать протоколы испытаний с исполняемым кодом. Это зависит от того, как обрабатываются сгенерированные артефакты, количество требуемой последующей обработки, как они доставляются и разворачиваются, будут ли они использоваться третьей стороной и т. Д.

Другие вопросы по тегам