なにか作って Github に置く場合、基本的に Travis と Coveralls を利用している。
Coveralls を利用するのは簡単で、基本的には下記の手順で問題ない。
- coveralls の gem をインストールする
- .coveralls.yml を作成
- spec_helper などの最初に
require "coveralls"
してCoveralls.wear!
する - push する
とはいえ、これだとテストでロードされた全てのファイルが対象になってしまう。
全てのファイルが対象になるとスペックファイルの fail
とか、lib に突っ込んだ外部ライブラリとかも対象になってしまい、永久に 100% にならない。
それは困るので調べてみたら、ちゃんと公式に書いてあった。
なるほど、フォーマッタだけ Coveralls のを使用すればいいのね。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SimpleCov.formatter = Coveralls::SimpleCov::Formatter | |
SimpleCov.start do | |
# スペックファイルを除外 | |
add_filter "/spec/" | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SimpleCov.formatter = Coveralls::SimpleCov::Formatter | |
SimpleCov.start do | |
add_filter do |source_file| | |
# redmine プラグインの ruby ファイルだけ対象にする | |
!source_file.filename.include?("plugins/redmine_hoge") || !source_file.filename.end_with?(".rb") | |
end | |
end |
ちょっと、個人的に直感的じゃないなと思うのは、add_filter
の引数がパスに含まれているファイルやブロックにて true を返すファイルを除外するというところ。
フィルタなんだから、マッチするものだけを対象にするかと思ったら逆なんだな。
0 件のコメント :
コメントを投稿