Квест → Как хакнуть форму
Прошли: 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 в вашем репозитории: