Как включить покрытие внешнего кода в sonarqube для проекта Angular

Это моя доска от Bamboo, связанная с Sonarqube: https://imgur.com/a/yOq6iGp

Страница результатов сборки проекта выглядит следующим образом: https://imgur.com/Z126mr7

Итак, я хочу каким-то образом включить тестовое покрытие в Bamboo, чтобы видеть отчеты модульных тестов. Я упоминаю, что у нас есть локальное покрытие для моего углового проекта.

Можете ли вы помочь мне с этим?


person m1b    schedule 13.06.2019    source источник


Ответы (2)


Вам нужно будет получить результаты в формате, который может интерпретировать SonarQube. Предполагая, что вы используете Jasmine / Karma, это будет формат LCOV.

  1. Измените сценарий сборки, включив в него следующую строку:

    ng test --code-coverage

  2. Это должно создать папку покрытия в вашем угловом проекте. Однако он будет в формате html. Вам также необходимо изменить бегун Karma, чтобы он создавал файл lcov.info:

    // karma.conf.js
    // ....
    coverageIstanbulReporter: {
       dir: require('path').join(__dirname, '../coverage'),
       reports: ['lcovonly'],
       fixWebpackSourcePaths: true
    },
    // ....
    
  3. Наконец, обновите файл sonar-project.properties следующей строкой, чтобы SonarQube знал, где найти покрытие:

    sonar.typescript.lcov.reportPaths=coverage/lcov/lcov.info
    
person Wesley Rolnick    schedule 21.06.2019
comment
Я получаю WARN: Could not resolve 10 file paths in [/mnt/ramdisk/agents/agent12/work/dbe8ad65d6f5738a/coverage/lcov.info], first unresolved path: src/app/app.component.html - не уверен, что здесь не так - person Felix; 16.06.2021

Вы выводите результаты в какой-то файл или пытаетесь получить результаты напрямую из SonarQube?

Как правило, результаты тестирования публикуются в Bamboo путем добавления задачи «Тестовый синтаксический анализатор» и указания ее на поддерживаемый выходной файл теста.

У Atlassian действительно есть несколько хороших статей о написании собственного сборщика тестов и репортера, так что вы, вероятно, могли бы написать собственный парсер для создания отчетов прямо из SonarQube через их API.

person Mark    schedule 13.06.2019
comment
У меня есть вывод html. imgur.com/a/gFuG3TL В Bamboo я хочу получить некоторую статистику или что-нибудь для этого местного покрытия. - person m1b; 13.06.2019
comment
Лучше всего будет посмотреть, можете ли вы вывести результаты в формате JUnit (xml), поскольку Bamboo поддерживает создание отчетов об этом и добавляет анализатор результатов. Например, у jest и karma есть плагины для отчетов junit. Это даст вам результаты пройден / не пройден, статистику недавних неудачных тестов, время и т. Д. - person Mark; 13.06.2019
comment
Я уже интегрировал в свои результаты тестирования сборки - ›imgur.com/a/QR3PZib Все, что я хочу сейчас на этой странице должно быть что-то вроде: yuriburger.net/ 2018/09/24 / Get-Coating-reports-with-angular Но здесь интегрировано через собственное приложение sonarqube, а не в bamboo - person m1b; 13.06.2019