LoginSignup
6
3

More than 5 years have passed since last update.

CircleCIからCodeClimateにテストカバレッジを送信する

Last updated at Posted at 2018-04-04

CodeClimate導入してみたけどテストカバレッジが表示されない!なぜ!
とおもったら、ちゃんとそのための手順が必要でした。 :sweat_smile:

流れ

導入したプロジェクトはRuby on Railsだったので、テストカバレッジにはSimpleCovを採用してます。

rspecでSimpleCovが動いてる前提です。

rails_helper.rb
require 'simplecov'
SimpleCov.start
...

詳細はSimpleCovのREADME参照。

  1. CircleCIでrspec実行
  2. simplecovがcoverageを出力
  3. 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 $?

      ...

以上です。

参考

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3