LoginSignup
5
5

More than 5 years have passed since last update.

rails + RSpec + CircleCI + codecov でテストカバレッジを可視化してみた

Last updated at Posted at 2017-02-01

環境

ruby 2.2.6
rails 4.2.0
rspec-rails 3.5.2
simplecov 0.13.0
codecov 0.1.9

事前準備

CircleCIの登録
codecovの登録→リポジトリ登録

特につまづくとこはないと思う。

CircleCI導入はいろんな人が書いてるのでそちらにお任せして割愛。

「カバレッジ出力+codecovへのアップロード」するための修正

group :test do
  gem 'simplecov', :require => false
  gem 'codecov', :require => false
end
spec/spec_helper.rb
require 'simplecov'

# save to CircleCI's artifacts directory if we're on CircleCI
if ENV['CIRCLE_ARTIFACTS']
  dir = File.join(ENV['CIRCLE_ARTIFACTS'], "coverage")
  SimpleCov.coverage_dir(dir)
end

SimpleCov.start

# ここのifはローカルでテスト走らせる時に実行したくないから。もっといい方法あると思う
if ENV['CIRCLE_ARTIFACTS']
  require 'codecov'
  SimpleCov.formatter = SimpleCov::Formatter::Codecov
end

codecov.ymlは作成なし。デフォルト設定のまま。
設定変えることもできるらしいけど今回はパス
https://docs.codecov.io/docs/codecov-yaml

結果

codecovみたらしっかり連携されてた

codecov_screen_shot

ちなみにcodecovに連携する設定をしていないと、CircleCI側のARTIFACTSタブでカバレッジレポートが見れる。まあ推移とか見れる分codecovの方がいいのかな。もう少し使ってみないとなんとも言えない。

上の画像ではカバレッジレポートの対象にconfigやらspecが入っているけど、

SimpleCov.start do
    add_filter "/config/"
    add_filter "/spec/"
end

ってやれば除外もできる。

うーん

codecovのアップローダscriptが上手く動かなかった...

CircleCIのdocにもcodecovと連携する時は使ってねって書いてるんだけど、動かしてみるとcoverageファイルが見つかりませんと出てしまう。
何か心当たりある人おしえて下さい><
https://circleci.com/docs/code-coverage/

ビルドログがCircleCI側にしかない

あくまでカバレッジレポート可視化サービスなので。
テストが失敗してようが通ってようが関係ないっちゃないな。

おわり

今回連携したのが真新しいリポジトリだったので、コードを書いていくと楽しくなるのかなと思いました(小学生並み)

5
5
2

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
5
5