PHP Profi

Test Coverage: Интеграция CodeClimate и Travis CI Перевод

php test opensource coverage travis codeclimate

Когда вы разрабатываете проект с открытым исходным кодом, считается хорошей практикой иметь высокое покрытие тестами, чтобы сообщество могло чувствовать себя в безопасности, используя ваш код в своих проектах. Существуют онлайн-сервисы, которые могут анализировать качество вашего кода и предоставляют отчёты и рекомендации. Одним из самых популярных является Code Climate. Этот сервис не запускает ваши тесты, но вы можете использовать один из инструментов непрерывной интеграции(CI) для их запуска, а затем отправлять его результат в Code Climate. В этой статье будет показано, как использовать Travis CI для запуска тестов и данные о покрытии тестами в CodeClimate.

logo

1. Reporter ID в CodeClimate

На стороне CodeClimate вам нужен только Reporter ID. Зайдите в настройки репозитория, затем выберите “Test Coverage”.

reporter-id

2. Добавьте токен из Code Climate в Travis CI

Следующий шаг -- добавление вашего токена в ваш файл travis.yml. Но не спешите это делать прямо сейчас! Этот токен не публичный, не стоит его коммитить в свой репозиторий. Для начала вы должны зашифровать его с помощью Travis CI Client. Это gem на Ruby, который включает в себя как клиент для командной строки, так и библиотеку на Ruby для взаимодействия с Travis CI.

2.1 Установите клиент Travis CI

Это просто gem на Ruby, и, чтобы установить его, выполните в терминале:

gem-install

2.2 Залогиньтесь в клиенте для Travis CI

Затем, Вам необходимо войти. Запустите travis login и введите ваши учетные данные из GitHub:

travis-login

2.3 Зашифруйте токен CodeClimate

Теперь мы можем зашифровать токен CodeClimate с помощью команды travis encrypt:

travis-encrypt

Скопируйте всё, что в двойных кавычках после secure:, -- это ваш зашифрованный токен.

2.4 Добавьте зашифрованный токен в конфиг Travis CI

Последним шагом является добавление зашифрованного токена в файл travis.yml в вашем репозитории. Примерно так:

addons:
  code_climate:
    repo_token:
      secure: "pdpKV..."

3. Добавьте пакет codeclimate/php-test-reporter

Для отправки отчёта о покрытии тестами нам нужно добавить пакет CodeClimate как dev-зависимость для нашего проекта:

composer require codeclimate/php-test-reporter --dev

4. Обновите phpunit.xml

Перед отправкой отчёта в CodeClimate нам нужно "вручную" собрать результаты в формате clover. Для сбора информации в вашем файле phpunit.xml добавьте такую секцию, чтобы создать папку в корне вашего проекта:


    ...
    
        
    
    ...

PhpUnit соберёт дынные о покрытии в папке build в корне вашего проекта.

Вы можете добавить эту папку в ваш .gitignore.

5. Обновите конфиг Travis CI для отправки отчета

Для того, чтобы после выполнения тестов запускался CodeClimate'овский php-test-reporter, добавьте этот раздел в ваш travis.yml:

after_script:
  - vendor/bin/test-reporter

Вот и всё!

В следующий раз, когда запустится сборка на Travis CI, он прогонит тесты, а затем отправит отчет о покрытии для CodeClimate.

coverage

Теперь вы можете добавить бейджики CodeClimate'а в файл README в вашем репозитории:

badges

2018-02-07 alek13 оригинал

Комментарии

авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий