SimpleCov を使ってcode coverageを取るときに spec_helper.rb にこんな感じで書いていた if ENV['COVERAGE'] # <= rake spec / rake coverage を分けたい派なので require "simplecov" SimpleCov.start :test_frameworks do add_filter "/vendor/bundle/" end end # 以下略 RSpec.configure do |config| # ここも略... end プログラムのroot pathに .simplecov という名前のファイルを作り、SimpleCov の設定部分を書いてしまうことが出来るようになっているらしい (ということに気付いた .simplecov SimpleCov.start :test_frameworks
Rails SimpleCovでカバレッジが上書きされないようにする RailsのテストのカバレッジにSimpleCovを使っています。 bundle exec rake test COVERAGE=trueを実行すると、ControllerやModelのテストが順番に実行されますが、coverage/index.htmlには一部の実行結果のみが残っていました。 具体的にはModelのテスト結果がControllerのテストで上書きされた状態です。 調べてみるとSimpleCov.command_nameをそれぞれ別の名前になるようにすればうまくマージされることがわかりました。 test_helper.rbに次のような設定を入れました。 : require 'simplecov' SimpleCov.start do add_filter "/test/" add_filter "/con
はじめに 先週の土曜日(2015年5月16日)に西脇.rb&神戸.rbで「Rubyistのためのテストコード相談会 ~テストの書き方に悩んでいませんか?~」という勉強会を開催しました。 この勉強会は「テストコードに関する疑問や悩みをみんなで持ち寄り、みんなで解決すること」を目的にした勉強会です。 勉強会中はいろいろと興味深い議論が出たので、今回のエントリではその内容を簡単にまとめてみます。 勉強会で挙がった質疑応答 よく使うフレームワークは? RSpecが大多数、Minitestが若干名。 gemを開発するときはMinitest、RailsはRSpec、というように開発内容によってフレームワークを使い分ける、という人もいた。 Minitestってどうなの? 導入が簡単。assertメソッドだけ知っていればなんとかなる。 Railsにも対応している。Capybaraも使える。 RSpecのs
テストを書くならカバレッジ計測と行単位で通った・通ってないの確認ができたらいいな、と思っていたら @tmtms さんより「SimpleCov」を教えていただきました。 GitHub - colszowka/simplecov: Code coverage for Ruby 1.9+ with a powerful configuration library and automatic merging of coverage across test suites 導入手順 Gemfileに「simplecov」を追加 group :development, :test do # Call 'byebug' anywhere in the code to stop execution and get a debugger console gem 'byebug' gem 'rspec-rail
自分の書いたテストが、全体コードの何割を占めているかを示す指標をテストカバレッジといいます。数値化されるのでテストの妥当性の検証に役立ちます。 今回はそのカバレッジを調べるRubyライブラリ simplecov を調べてみました。 インストール gemパッケージですので次の通りインストールします。 $ gem install simplecov rails で使う場合は、Gemfile に次のように追加してbundle します。 gem 'simplecov', :require=>false, :group=>true テストで計測の時に require するのでここでは読み込まないようします 使い方 ヘルパメソッドに追加(初回のみ) test/test_helper.rb (RSpecの場合は spec/spec_helper)の一番最初に次の行を追加しまう require 'simp
Testing Casual Talks#2に行ってきました。そういえばカバレッジの話がなかったなと思ったので、以前調査した結果を共有したいと思います。 バージョンとか ruby (2.1.5) simplecov (0.9.2) カバレッジ(網羅率)とは よく出てくるカバレッジは下記の3種類でしょう。 命令網羅(C0) テスト内で実行されたメソッドの割合を意味する 分岐網羅(C1) テスト内で実行された分岐の割合を意味する 条件網羅(C2) テスト内で実行された分岐の組み合わせの割合を意味する このようなコードがあったとしましょう。命令網羅の場合、どのような引数であれtestメソッドをテストしていれば、カバレッジは100%になります。分岐網羅の場合、例えばx = 1, y = 10とx = 2, y = 10でtestメソッドを呼び出していれば、カバレッジは100%になります。条件網羅の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く