Как настроить код покрытия климат-теста для Дженкинса CI

Я использую кодовый климат для качества кода и покрытия тестами. Я добавил гем и код в spec_helper.rb, чтобы начать покрытие. В следующем шаге код в соответствии с документацией: Когда вы запускаете свои тесты на CI, установите переменную среды CODECLIMATE_REPO_TOKEN: $CODECLIMATE_REPO_TOKEN=*******************************************************************************************************************************************

Я попытался установить вышеуказанную строку в командах оболочки выполнения jenkins. Также попытался установить переменные окружения CODECLIMATE_REPO_TOKEN в разделе Управление jenkins -> Настройка параметров системы. Но это не работает. Я не смог найти никакой документации для настройки тестового покрытия с Дженкинсом. Любая помощь будет заметна.

Согласно код-климатической документации

Add the codeclimate-test-reporter gem to your Gemfile:

gem "codeclimate-test-reporter", группа::test, require: nil

Start the test reporter on the very first line of spec_helper.rb or test_helper.rb:

требуется "codeclimate-test-reporter" CodeClimate::TestReporter.start

When you run your tests on CI, set the CODECLIMATE_REPO_TOKEN environment variable:

$ CODECLIMATE_REPO_TOKEN=**************************** bundle exec rake

(Note: This token is specific to this repo on Code Climate.)

(Note: **As an alternative to the above, you may prefer to define this token as environment variable within your CI's user interface or configuration file**.) 

Здесь написано, что переменная окружения токена должна быть определена на вашем CI-сервере. Это то, что мой вопрос, где это определить в Дженкинс. Я попытался определить глобальную переменную среды в jenkins в разделе "Управление jenkins"->"Конфигурация системы". Но это не сработало.

1 ответ

Если ваш вопрос заключается в том, как установить переменную среды в Jenkins, вы можете посмотреть, например, здесь: Как установить переменные среды в Jenkins?

Я использую karma тестировщик и nyc с участием mocha чтобы создать свой отчет.(lcov.info) Я создаю свой отчет и вставляю его в build/reports/coverage/XXXXXXXXXX/lcov.info. Этот путь может быть другим для вас.

После этого я трансформирую lcov.info в codeclimate.XXXXX.jsonНаконец все слилось sum-coverage

stage('Code Climate'){
            environment {
                CC_TEST_REPORTER_ID = credentials('7da93b1f-3602-458c-a07c-fcf36402c499')
            }
            steps{
                sh 'wget https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64  > ./cc-test-reporter'
                sh 'chmod 777  cc-test-reporter'

                sh './cc-test-reporter --debug before-build'
                sh './cc-test-reporter --debug format-coverage build/reports/coverage/server-tests/lcov.info -t lcov -o build/reports/coverage/codeclimate.server.json'
                sh './cc-test-reporter --debug format-coverage build/reports/coverage/ng/lcov.info -t lcov -o build/reports/coverage/codeclimate.frontend.json' 
                sh './cc-test-reporter --debug format-coverage build/reports/coverage/api-tests/lcov.info -t lcov -o build/reports/coverage/codeclimate.api.json'

                sh './cc-test-reporter  sum-coverage build/reports/coverage/codeclimate.*.json -p 3' 
                sh './cc-test-reporter upload-coverage -r ${CC_TEST_REPORTER_ID}'
              
                sh 'rm cc-test-reporter'
            }
        }

с участием

environment {
                CC_TEST_REPORTER_ID = credentials('7da93b1f-3602-458c-a07c-fcf36402c499')
            }

я извлекаю свой CC_TEST_REPORTER_ID что я установил в Manage Jenkins > Manage credentials. Вы можете найти это в https://codeclimate.com/repos/XXXXXXXXXXXXXXXX/settings/test_reporter в которой XXXXXXXXXXXXXXX нужно поставить свой проект codeclimate.

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