Как «Включить покрытие кода переднего плана в sonarqube» для проекта Angular - PullRequest
0 голосов
/ 13 июня 2019

Это моя панель из Bamboo, относящаяся к Sonarqube: https://imgur.com/a/yOq6iGp

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

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

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

Ответы [ 2 ]

0 голосов
/ 21 июня 2019

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

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

    <code>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
    
0 голосов
/ 13 июня 2019

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

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

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

...