cucumberテスト中のde-bugの使用
詳細
最近、Railsエンジニアリングでは、テストと統合テストを行うとき、Cucumberは暑いです.しかし、どのテストツールでも使用するときのように、テスト例以外の失敗が発生する可能性があります.
この場合、上書きされていない使用例や失敗の原因をデバッグし、発見するためのテクニックが必要です.
ruby-debugを使用する前に、プロファイルが必要です.
env.rbファイルで、以下を追加します.
その後、breakpoint識別子をデバッグする必要があるコードに配置することができます.例えば、アプリケーションやstepデバッグが必要な場所などです.
ヒント:breakpoint識別子を最後に配置する場合は、breakpointの後ろに文識別子を追加する必要があります.そうしないと、ruby-debugは呼び出しブロックに入ります.次のようにします.
では、デバッグを行います.
「Then I debug」のような手順があれば、かなり便利です.このファイルは
features/step_definitions/debug_steps.rb:
Webratプラグイン
Webratはデフォルトのツールでdebugcucumberテストに使用されます.その機能には、接続をクリックしたり、フォームを入力したり、提出したりすることが含まれています.例えば、存在しないリンクをクリックしようとすると、一対のhtmlが得られます.
save_and_open_page
Webratはsaveを提供しますand_open_Pageメソッドは、現在のHTMLの保存をキャプチャしてブラウザを開くために使用され、非常に強力である.
上記の場合、失敗しなくても多くのページが開かれます
ページはエラーが発生したときにのみ開く.
最近、Railsエンジニアリングでは、テストと統合テストを行うとき、Cucumberは暑いです.しかし、どのテストツールでも使用するときのように、テスト例以外の失敗が発生する可能性があります.
この場合、上書きされていない使用例や失敗の原因をデバッグし、発見するためのテクニックが必要です.
ruby-debugを使用する前に、プロファイルが必要です.
env.rbファイルで、以下を追加します.
require 'ruby-debug'
その後、breakpoint識別子をデバッグする必要があるコードに配置することができます.例えば、アプリケーションやstepデバッグが必要な場所などです.
Then /^the process should exit cleanly$/ do
breakpoint
assert exited_cleanly, "Process did not exit cleanly: #{stdout}"
end
ヒント:breakpoint識別子を最後に配置する場合は、breakpointの後ろに文識別子を追加する必要があります.そうしないと、ruby-debugは呼び出しブロックに入ります.次のようにします.
Then /^the process should exit cleanly$/ do
assert exited_cleanly, "Process did not exit cleanly: #{stdout}"
breakpoint; 0
end
では、デバッグを行います.
「Then I debug」のような手順があれば、かなり便利です.このファイルは
features/step_definitions/debug_steps.rb:
Then /^I debug$/ do
breakpoint
0
end
Webratプラグイン
Webratはデフォルトのツールでdebugcucumberテストに使用されます.その機能には、接続をクリックしたり、フォームを入力したり、提出したりすることが含まれています.例えば、存在しないリンクをクリックしようとすると、一対のhtmlが得られます.
save_and_open_page
Webratはsaveを提供しますand_open_Pageメソッドは、現在のHTMLの保存をキャプチャしてブラウザを開くために使用され、非常に強力である.
When /^I follow "(.*)"$/ do |link|
save_and_open_page
click_link(link)
end
上記の場合、失敗しなくても多くのページが開かれます
When /^I follow "(.*)"$/ do |link|
begin
click_link(link)
rescue
save_and_open_page
raise
end
end
ページはエラーが発生したときにのみ開く.