先週、Ruby 本体のカバレッジの取り方を学びました

やり方を忘れる前に。

先週の土曜日に Cookpad Ruby Hack Challenge #4 カバレッジ特別回という meetup に参加してきました。 Ruby 本体の C 言語で書かれた部分と Ruby で書かれたライブラリのカバレッジを取得する方法を勉強して実際にカバレッジを向上してみようという趣旨の集まりでした。

詳しいことは資料を見て頂ければ良いのですが、以下のようなコマンドを実行すると

$ ./configure --enable-gcov
$ make test-all COVERAGE=true
$ make lcov

lcov-c-out というディレクトリが生成され、そこにカバレッジの結果が出力されるとのことでした。あとはカバレッジが向上するようにテストコードを書くということを行っていました。 私の成果物は以下の Pull Request です。

Ruby のカバレッジを取ったことがなかったので、やり方がわかりとても有意義でした( ˘ω˘)

macOS でも brew install lcovlcov をインストールしておけばカバレッジを取得できることがわかったのですが、C 言語で書かれたコードの結果内容が ubuntu + gcc で取得したものとずいぶん異なるようなので、仮想マシンなりで linux 上でやったほうが良さそうな印象でした。