Ruby on rails 释放一个Cucumber-*宝石,它使用After块

Ruby on rails 释放一个Cucumber-*宝石,它使用After块,ruby-on-rails,gem,cucumber,capybara,Ruby On Rails,Gem,Cucumber,Capybara,我已经构建了一个简单的Gem,可以在场景失败时为Capybara Webkit截图,并且它还保存了当前页面的HTML文件,而不管您使用的是哪个Capybara驱动程序。但是,我遇到了一个我看不到的问题,即每当调用Gem中的代码时,page.body都是空的。但是,当我在Rails应用程序中使用完全相同的代码时,page.body不是空的 gem代码位于Github的 如果你看一下,你会发现我有一个文件,可以访问page.body并保存内容。问题在于,当Gem访问page.body时,page.b

我已经构建了一个简单的Gem,可以在场景失败时为Capybara Webkit截图,并且它还保存了当前页面的HTML文件,而不管您使用的是哪个Capybara驱动程序。但是,我遇到了一个我看不到的问题,即每当调用Gem中的代码时,
page.body
都是空的。但是,当我在Rails应用程序中使用完全相同的代码时,
page.body
不是空的

gem代码位于Github的

如果你看一下,你会发现我有一个文件,可以访问page.body并保存内容。问题在于,当Gem访问page.body时,page.body为空,只包含:
我将world.rb包含在中,因此我无法真正看到我做错了什么

奇怪的是,如果我在我的访问页面中放入after块,那么.body就有了正确的HTML,因此在Gem中的{my code}之后调用似乎是在页面释放后执行的

gem代码位于,gem安装在。您可以通过运行cucumber来快速重新创建此问题的示例Rails应用程序位于


我觉得这个问题的答案很简单,但不知为什么我看不出来。感谢您提供的任何帮助。

Thoughtbot的Joe Ferris为我指出了正确的方向,并指出您需要确保After hook是在capybara之后加载的,因此我需要确保需要我所依赖的任何文件。在这种情况下,我需要水豚/黄瓜

你可以在网站上看到正在工作的宝石