Как сгенерировать данные покрытия кода в Bamboo для Angular проектов? - PullRequest
2 голосов
/ 26 сентября 2019

Я пытаюсь заполнить покрытие кода для одного из моих проектов в Bamboo.В соответствии с документами Atlassian мы можем получить покрытие кода с помощью встроенного плагина клевера, доступного с Bamboo.Но, к сожалению, он не показывает никакой информации о покрытии кода.Кто-нибудь уже интегрировал эту функцию в проекты Angular?

Примечание. Сборка генерируется с использованием стандартного angular-cli, а результаты теста генерируются по умолчанию для бегуна тестов Karma и Istanbul Reporter.

1 Ответ

1 голос
/ 27 сентября 2019

Ваш проект Angular не будет предоставлять результаты испытаний Clover "из коробки".Вместо этого вам придется внести некоторые изменения в проект и установить дополнительные пакеты.Я выполнил это, выполнив следующее:

  1. Установите ChromeHeadless на сервере Bamboo
  2. Измените package.json, добавив в него следующий скрипт (под скриптами):
"test": "ng test --code-coverage --watch=false --browsers=ChromeHeadless"
Создайте задачу npm с помощью команды run test в каталоге вашего проекта Измените karma.js в соответствии со своими потребностями.Мне пришлось изменить outputDir, outputFile и изменить репортеров на junit.Я также добавил следующие строки:
coverageIstanbulReporter: {
      dir: require('path').join(__dirname, 'coverage'), reports: ['json-summary', 'lcovonly', 'clover'],
      fixWebpackSourcePaths: true
    },
Убедитесь, что karma-coverage-istanbul-reporter и karma-junit-reporter установлены и присутствуют в файле package.json ( ссылка на пакет npm ). Добавьте задачу JUnit Parser в Bamboo, котораяполучает результаты от **/coverage/junit.xml
...