読者です 読者をやめる 読者になる 読者になる

Thanks Driven Life

日々是感謝

Turnip 1.3.1 リリースしました (RSpec 3.3.0 対応)

turnip ruby rspec

Release Version 1.3.1 · jnicklas/turnip

テスト用に gemfiles/ 以下に RSpec 毎のファイルが増えてくると不安になる…

主な内容

掲題のとおり、RSpec 3.3.0 対応となります。

RSpec 3.3 has been released!

RSpec 3.3.0 の変更で Turnip に影響があったのは、テスト実行の際に行数が指定された時の挙動です。

どういうこと

つまり

$ rspec /path/to/foo.feature:12

みたいなやつです。RSpec 3.3.0 からは ↑ のような行数だけではなく

$ rspec /path/to/foo.feature[1:4]

このように書くことで

1番目の describe の中にある、4番目の it だけ(もしくは4番目の describe の中にあるやつ全部)を実行しなさい」

という指定が可能になります。

おそらくこれは手動で指定するものではなく、同じく RSpec 3.3.0 から導入された --only-failures--next-failure のための機能追加じゃないかなって思います。多分。

んでもって

この機能追加によって、Turnip 側から行数指定による Scenario の指定ができなくなっていたので

github.com

こんな感じで修正を行いました。instance_eval 万歳。

おまけ

今回のような、テストケースの指定の仕方は、Pure RSpec なテストケースであれば公式サイトを見ればわかりますが、 Turnip の場合はどのように使えるんだ?みたいな疑問がわくと思います。行数指定は前からありましたが、[1:4] みたいな ID 指定を feature ファイルに置き換えるとどうなるんだ?みたいな。

そんなわけで、せっかくなので wiki にまとめておきました。

How to identify scenario using Location (or IDs) · jnicklas/turnip Wiki · GitHub

参考になればと思います。

まとめ

RSpec どれかサポート切りたい。「RSpec 3.x + RSpec 3.(x-1) + RSpec 2.14」とかが落とし所かなー