Thanks Driven Life

日々是感謝

Turnip 1.2.0 がリリースされました / TurnipFormatter & Gnawrnip も追従

turnipversion 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_formattergnawrnip を turnip 1.2.0 & RSpec 3 対応させました。多分動きます。 RSpec 3.0 対応については Ruby - RSpecの最新の動向・RSpec 3へのアップグレードガイド - Qiita [キータ] と、そこで紹介されていた Transpec を使わせていただきました。transpec やばかった。expect() が侵食していく様やばかった

まとめ

現在 turnip は メンテナを募集している らしいです。みなさまどうですか。