LoginSignup
3
3

More than 5 years have passed since last update.

Ruby gemをScrutinizerで品質管理

Posted at

Qiitaで流れてきた記事に、PHP開発でCIするならScrutinizer使ってみようというのがありました。気になってサイトを見てみると、Rubyにも使えることがわかったので、自作のjkr2255/prop_logicに導入してみました。

基本機能などはほぼ同じなのでそちらに任せることにして、自分がやってみて気になった点や、Ruby特有の事情だけまとめてみます。

ユーザー登録

ユーザー登録のプロセスは、次の3段階でした。

  1. GitHubログイン
  2. 名前やメールアドレスの登録
  3. メールアドレスの認証

GitHubやTravis CI同様、「パブリックリポジトリに使うだけなら完全に無料」ですので、支払い情報をそもそも登録する必要もありませんでした。

プロジェクトごとの設定

RSpecが入っていれば自動で回してくれるので、とりあえずは何も設定しなくても動くかもしれませんが、標準では Ruby 1.9.3が選ばれてしまいました。今回のprop_logicはRuby 2.0.0以降に対応するものですので1、そこは設定が必要でした。

設定方法としては、Travisのように.scrutinizer.ymlファイルを作ることもできますし、Webインターフェースからも設定できます。

カバレッジの取得

Rubyでカバレッジを取得する場合、scrutinizer-ocularというGemを入れる必要があります。.gemspec.add_development_dependencyで追加した上で、spec_helper.rbに2行を追加します。

spec/spec_helper.rb
require 'scrutinizer/ocular'
Scrutinizer::Ocular.watch!

それを使うように設定したら、以下のようになりました。

.scrutinizer.yml
checks:
    ruby: true
filter:
    excluded_paths:
        - 'spec/*'
build:
    environment:
        ruby: '2.2.3'
    tests:
        override:
            -
                command: 'bundle exec rspec spec'
                environment:
                    'SCRUTINIZER_CC_FILE': 'my-coverage'
                coverage:
                    file: 'my-coverage'
                    format: 'rb-cc'

測定結果

このようになりました。強制ではないとはいえ、ローカルにRubocopを入れていたこともあって、スコア9.5、そしてテストカバレッジも99%を記録しました2。例によってバッジも用意してあるので、README.mdに貼り付けることもできます。


  1. Ruby 1.9.3を超える文法やメソッドを使っている、というわけでもないのですが、ウィークリファレンスが不安定なためにテストが通りません。 

  2. 残り僅かの部分は、requireを書き換えないと呼ばれない部分だと思います。 

3
3
0

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