我怎样才能看到在失败的黄瓜步骤发现什么水豚?
我开始从黄瓜+ webrat迁移到黄瓜+水豚。 现在“我应该看到”的行为似乎有些不同。 现在大部分失败了,虽然我没有改变页面上的任何东西。 我用一些在每个页面上的内容replace了应该find的代码片段,并且replace了其中一些文本和其他文本。 我无法find页面内容中find什么模式,什么不是。 Webrat用于打印它find的页面内容,以防它包含所需的短语。 有反正有水豚显示它从哪里试图find文本的页面得到的文本?
尝试添加这一步:
Then show me the page
Then show me the page
调用webrat / save_and_open_page
的底层save_and_open_page
方法。 发现用牛排工作时很有用。
如果您希望浏览器在页面失败时打开页面,请使用“launchy”gem。 将其添加到您的gem文件,然后在/ features / support中创build一个名为debugging.rb的文件,其内容如下:
After do |scenario| save_and_open_page if scenario.failed? end
如果您在页面中使用Javascript或Ajax,并且想要查看正在发生的事情,我发现Poltergeist驱动程序非常擅长让您进入DOM并找出发生了什么问题。
如果您使用远程debugging选项设置您的Capybara驱动程序:
Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, inspector: true) end
然后,您可以在您的步骤中放入以下行:
page.driver.debug
在当前的DOM状态设置下启动一个新的Chromium浏览器,让你进入控制台。 (在我的Linux版本中,我不得不将铬符号链接到铬浏览器,但是它的工作正常)。
来源信息: http : //jonathanleighton.com/articles/2012/poltergeist-0-6-0/
Then show me the response
, 黄瓜1.1 Then show me the response
并不适合我。 我发现使用水豚的命令写一个步骤是有用的:
print page.html
这将输出DOM的当前状态
如果您不想使用浏览器,也可以使用“然后显示响应”,将HTML输出到控制台。
一旦出现问题,您可以随时屏幕截图。 我以这种方式debugging了很多失败的function。