環境
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
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に連携する設定をしていないと、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側にしかない
あくまでカバレッジレポート可視化サービスなので。
テストが失敗してようが通ってようが関係ないっちゃないな。
おわり
今回連携したのが真新しいリポジトリだったので、コードを書いていくと楽しくなるのかなと思いました(小学生並み)