turnip の version 1.2.0 がリリースされた ということで、軽くチェック。
もちろんいくつか変更はあったのですが、自分の中でいい感じのものは2つほど。
Pending の扱い
GH-99 は stepA 内で 定義されていない stepB を呼び出した時、output には stepA が無いんだけど
って警告になってしまうのを直した、というもの。自分も時々これに引っかかってしまい、「あるじゃねーかくそ」って奥深く観ていったら未定義のステップがありました。地味に嬉しい。
GH-105 は pending step を呼び出した時の、output の ファイル名:行数
がおかしいから直した、というもの。issue にも書かれている But was # ./examples/pending.feature:68
の 68 行目ってのは、たぶん lib/turnip/rspec.rb
の中の行数だと予想。
-l
オプションの実装
1.2.0 の目玉機能。ついに turnip にも -l
オプションが実装されました
GH-98 Fix line numbers and make rspec -l work
RSpec に元々備わってるオプションであるところの -l
は、行数指定でテストを実行できるというものです。
これが今まで turnip では使えなかった(実行時に -l
を指定しても無意味だった)のだが、ついに実装されました。
issue の待ち望んでいるコメントが多いことからも待望だったっぽい。
試してみましょう。
$ git clone https://github.com/jnicklas/turnip.git
$ cd turnip
$ bundle install --path vendor/bundle
$ cat -n examples/steps_for.feature
1 Feature: Steps for a feature
2 @evil
3 Scenario: Evil
4 Given the monster has an alignment
5 Then that alignment should be "Evil"
6
7 @neutral
8 Scenario: Neutral
9 Given the monster has an alignment
10 Then that alignment should be "Neutral"
$ bundle exec rspec examples/steps_for.feature
..
Finished in 0.01012 seconds
2 examples, 0 failures
$ bundle exec rspec examples/steps_for.feature -l 8
.
Finished in 0.01102 seconds
1 examples, 0 failures
便利!!
今までだと、「このシナリオだけ実行したい!」とか思うと、そのシナリオに徐に @hoge
とか書いて rspec -t hoge
っていう不毛な作業をしていました。これで解放される。
おまけ
turnip が 1.2.0 になったということで、ついでに turnip_formatter と gnawrnip を turnip 1.2.0 & RSpec 3 対応させました。多分動きます。 RSpec 3.0 対応については Ruby - RSpecの最新の動向・RSpec 3へのアップグレードガイド - Qiita [キータ] と、そこで紹介されていた Transpec を使わせていただきました。transpec やばかった。expect() が侵食していく様やばかった
まとめ
現在 turnip は メンテナを募集している らしいです。みなさまどうですか。