CodeClimate導入してみたけどテストカバレッジが表示されない!なぜ!
とおもったら、ちゃんとそのための手順が必要でした。
流れ
導入したプロジェクトはRuby on Railsだったので、テストカバレッジにはSimpleCovを採用してます。
rspecでSimpleCovが動いてる前提です。
rails_helper.rb
require 'simplecov'
SimpleCov.start
...
詳細はSimpleCovのREADME参照。
- CircleCIでrspec実行
- simplecovがcoverageを出力
- coverageをtest-reporterがCodeClimateにアップロード
CC_TEST_REPORTER_ID
は
Settings -> Test Coverage -> TEST REPORTER ID
から取得できます。
コード
CircleCIのconfigをdiffで表示するとこんな感じ。
.circleci/config.yml
version: 2
jobs:
build:
docker:
- image: circleci/ruby:2.5.0-node-browsers
environment:
+ CC_TEST_REPORTER_ID: 'XXXXXXXXXXXXXXX'
working_directory: ~/my_project
steps:
- checkout
...
+ # Download test-reporter
+ - run:
+ name: Setup Code Climate test-reporter
+ command: |
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
+ chmod +x ./cc-test-reporter
# Run rspec
- run: |
+ ./cc-test-reporter before-build
bundle exec rspec
+ ./cc-test-reporter after-build --coverage-input-type simplecov --exit-code $?
...
以上です。