初めに
OSS
などでよく見るCI
での Rspec カバレッジをプルリクのコメントで表示するやり方を記事にしておきます。
環境
- Rails 6.1.4
- Ruby 2.7.4
- codecov 0.6.0
- simplecov 0.21.2
本編
今回はCircleCI
Codecov
simplecov
を利用してカバレッジを取得していきます。
Codecov の設定
- まずは、Codecovにアクセスし、アカウントを作成してください。
- リポジトリの設定ページにアクセスし、
Codecov Token
を取得します。
CircleCI の設定
すでにCircleCI
での Rspec が稼働している前提です。
-
CircleCI
の環境変数の設定ページにアクセスする。 -
CODECOV_TOKEN
の名前で先ほど取得したトークンを設定します。 - orb を利用するので、
Organization Settings
のSecurity
セクションにアクセスします。 -
Orb Security Settings
のセクションからYes
を選択する。
Gem の追加
カバレッジを計測するための Gem とCodecov
のための Gem を追加する。
group :test do
gem 'codecov', require: false
gem 'simplecov', require: false
end
Rspec
の設定にsimplecov
とcodecov
の設定を追加する。
spec/rails_helper.rb
require 'spec_helper'
require 'codecov'
require 'simplecov'
SimpleCov.start 'rails'
SimpleCov.formatter = SimpleCov::Formatter::Codecov
RSpec.configure do |config|
# 以下省略
end
CircleCI の設定を行う
.circleci/config.yml
にorbs
を追加する。
.circleci/config.yml
version: 2.1
orbs:
codecov: codecov/codecov@1.0.5
jobs:
build:
steps:
- setup
- checkout
- run:
# Rspecを稼働させる
- store_test_results: # coverageディレクトリが消えないようにする
path: ./coverage
- codecov/upload: # カバレッジの結果のファイルを送信する
file: ./coverage/codecov-result.json
これでCodecov
にテストのカバレッジが表示されるようになります。
そして、CI
が稼働してテストが成功するとプルリクにカバレッジ結果がコメントとして表示されるようになります。