Thanks Driven Life

日々是感謝

Turnip のステップ一覧リファレンスジェネレータ

定義した Turnip の step 一覧ページを生成してくれるツール作りました。

https://github.com/gongo/table_beet

インストール

$ gem install table_beet

使い方

詳細は README をご覧下さい。

$ table_beet -h
Usage: table_beet [options]
        --output        Directory to output (default: ./stepdoc)
        --path          Directory that contains step file. (default: ./spec)
        --suffix        Suffix of step file  (default: _steps.rb)
    -n, --textmode      Display steps in plain text (No generate HTML)
    -v, --version       Print this version
    -h, --help          Display this help message.

試しに Turnip の example steps を使って生成してみましょう。

$ git clone git://github.com/jnicklas/turnip.git /tmp/turnip
$ table_beet --path /tmp/turnip/examples/steps

作成された $(pwd)/stepdoc/index.html を開くとステップ一覧が載っているページが開くはずです。同じページをデモとして http://gongo.github.com/table_beet/demo/index.html に載せておきました。動きが確認できると思います。

余談ですが

会社で開発に携わっている Web アプリケーション(PHPです。PHPです。)の End-to-End テストは

  1. PHPUnit + Selenium(no webdriver)
    • Unit Test じゃないんだから DB も見ないし、Model と連携する必要もないから悲しみながら PHP で書く必要ないよねってことで ↓ に移行
  2. Capybara + Cucumber(selenium-webdriver)
  3. Capybara + Turnip(selenium-webdriver, poltergeist(試案中))

って流れで遷移してます。これで落ちつきたい所ですが、まだわからないですね。

Scoped step definitions in Cucumber-JVM - Cukes | Google Groups

でも話題に上がってたのですが、「同じステップ名なのに違う処理とか管理めんどくせーよ」みたいなのもあるはずなので、そこはこれからの課題ですね。 まあ違う処理といっても、中の細かい部分(XPathが違うとかっていうレベル)だけで、ユーザ視点での操作としては変わりがないので、 feature の記述に限ってはそこまで複雑化しないんじゃないかなって思ってたりもします。加えて補助も兼ねて table_beet を使ってのもあります。