step_definitionを一覧するためのツールを作り始めました
デブサミなんかで、「step_definitionを育てよう!!」などと言ってましたが、実際のプロジェクトでやるのはなかなか難しい。ということで、何かしらサポートできないか考えています。
で、まだコンセプトレベルなのですが、step_definitionを一覧するツールを作ってみました。
http://github.com/moro/tsuridana
step_definitionをパースするためのripperの関係で、ruby1.9系でのみ動作します(instance_evalで取ってくる作戦も考えたのですが、そこまで評価したいわけでないので微妙)。
動作イメージはこんな感じです。
$ ruby19 bin/tsurinada ~/Documents/a_project/features/step_definitions/web_steps_ja.rb Given : ^"([^\"]*)"ページを表示している$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:11) When : ^"([^\"]*)"ページを表示する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:15) When : ^"([^\"]*)"ボタンをクリックする$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:19) When : ^"([^\"]*)"リンクをクリックする$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:23) When : ^"([^\"]*)"の"([^\"]*)"リンクをクリックする$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:27) When : ^"([^\"]*)"に"([^\"]*)"と入力する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:31) When : ^以下の項目を入力する:$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:35) When : ^"([^\"]*)"から"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:39) When : ^日時として"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:43) When : ^"([^\"]*)"の日時として"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:47) When : ^時間として"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:51) When : ^"([^\"]*)"の時間として"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:55) When : ^日付として"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:59) When : ^"([^\"]*)"の日付として"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:63) When : ^"([^\"]*)"をチェックする$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:67) When : ^"([^\"]*)"のチェックを外す$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:71) When : ^"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:75) When : ^"([^\"]*)"としてファイル"([^\"]*)"を選択する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:79) Then : ^"([^\"]*)"と表示されていること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:83) Then : ^"([^\"]*)"に"([^\"]*)"と表示されていること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:87) Then : ^\/([^\/]*)\/と表示されていること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:91) Then : ^"([^\"]*)"に\/([^\/]*)\/と表示されていること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:95) Then : ^"([^\"]*)"と表示されていないこと$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:99) Then : ^"([^\"]*)"に"([^\"]*)"と表示されていないこと$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:103) Then : ^\/([^\/]*)\/と表示されていないこと$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:107) Then : ^"([^\"]*)"に\/([^\/]*)\/と表示されていないこと$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:111) Then : ^入力項目"([^\"]*)"に"([^\"]*)"と表示されていること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:115) Then : ^入力項目"([^\"]*)"に"([^\"]*)"と表示されていないこと$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:119) Then : ^"([^\"]*)"がチェックされていること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:123) Then : ^"([^\"]*)"がチェックされていないこと$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:127) Then : ^"([^\"]*)"ページを表示していること$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:131) Then : ^ページを表示する$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:136) Then : ^画面を目視$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:137) Then : ^デバッグ(?:のため)?$ (/Users/moro/Documents/a_project/features/step_definitions/web_steps_ja.rb:140)
これに、チームメンバー同士でコメントをつけたいなぁ、と思ってます。