ruby/specのパッチを書く際のテスティングについて

MRI の各種プラットフォームや JRuby といった Ruby 実装のテストとなっている ruby/spec に PR を送った際のメモ。

ruby/spec にパッチを送るには ruby/mspec への関連を知っておくと良い。基本的には以下 ruby/spec の README を読めばわかると思う。

github.com

ruby/spec と ruby/mspec が手元になければ ghq getgit clone なんかのコマンドで持ってくる。

% ghq get https://github.com/ruby/spec
% ghq get https://github.com/ruby/mspec

似た名前だけれどそれぞれ ruby/spec が Ruby の振る舞いに関するテストコード、ruby/mspec が RSpec 風のテストランナー。 なので ruby/spec へのテストの記述や実行は ruby/mspec を使って行うことになる。

ゆえあって ruby/spec への PR を送る準備をするため全テストを実行したところ、Ruby 2.6 向けのシンタックスでエラーになっていたのでテストを追加したのが以下のパッチ。

github.com

PR の Description に記しているが、手元の ruby/spec ディレクトリで以下のように mspec コマンドを実行することでテストを実行できる。

% ../mspec/bin/mspec language/rescue_spec.rb

あとはテストを書いて全テストパスしたら PR へと進む。