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

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

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

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

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

Скопируйте всё, что в двойных кавычках после secure:, -- это ваш зашифрованный токен.
Последним шагом является добавление зашифрованного токена в файл travis.yml в вашем репозитории. Примерно так:
addons:
code_climate:
repo_token:
secure: "pdpKV..."
codeclimate/php-test-reporterДля отправки отчёта о покрытии тестами нам нужно добавить пакет CodeClimate как dev-зависимость для нашего проекта:
composer require codeclimate/php-test-reporter --dev
phpunit.xmlПеред отправкой отчёта в CodeClimate нам нужно "вручную" собрать результаты в формате clover. Для сбора информации в вашем файле phpunit.xml добавьте такую секцию, чтобы создать папку в корне вашего проекта:
...
...
PhpUnit соберёт дынные о покрытии в папке build в корне вашего проекта.
Вы можете добавить эту папку в ваш .gitignore.
Для того, чтобы после выполнения тестов запускался CodeClimate'овский php-test-reporter, добавьте этот раздел в ваш travis.yml:
after_script: - vendor/bin/test-reporter
В следующий раз, когда запустится сборка на Travis CI, он прогонит тесты, а затем отправит отчет о покрытии для CodeClimate.

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