初めに
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が稼働してテストが成功するとプルリクにカバレッジ結果がコメントとして表示されるようになります。