Cucumber + Spork =未定义的方法`visit'for#<object:0x82fcc588>(NoMethodError)?</object:0x82fcc588>

时间:2010-10-05 22:17:55

标签: ruby-on-rails cucumber bdd capybara spork

我在这里撕扯我的头发。在Spork兼容模式(--drb)下运行Cucumber时, visit()方法不起作用。

只需尝试功能步骤:

When I go to the home page

调用网络步骤:

When /^(?:|I )go to (.+)$/ do |page_name|
  visit path_to(page_name)
end

在命令行上运行“cucumber”会产生以下错误:

% cucumber
Using the default profile...
Disabling profiles...
.F--

(::) failed steps (::)

undefined method `visit' for #<Object:0x82fcc588> (NoMethodError)
./features/step_definitions/web_steps.rb:24:in `/^(?:|I )go to (.+)$/'
features/authenticated/home_page_visit.feature:10:in `When I go to the home page'

Failing Scenarios:
cucumber features/authenticated/home_page_visit.feature:7 # Scenario: Visit the home page

有没有人知道为什么visit()不可用?


我的环境:

我正在使用Rails 2.3.9并且刚安装了黄瓜导轨(0.3.2),黄瓜(0.9.2),水豚(0.3.9)和spork(0.8.4)。有趣的是,如果我不使用Spork,那么这个工作绝对正常:

% cucumber
Using the default profile...
...

1 scenario (1 passed)
3 steps (3 passed)
0m0.114s

另一个有趣的数据点:

我做了一些调试,深入Cucumber gem本身(在cucumber-0.9.2 / lib / cucumber / core_ext / instance_exec.rb内)我输入了 puts()来转出什么 self.class.name stdout ,当我和Spork一起运行时它会吐出“对象”,但是当我在没有Spork的情况下运行它时它会打印出“Cucumber :: Rails” ::世界”。

1 个答案:

答案 0 :(得分:0)

我是那个在github上打开this issue的人,我可以确认它适用于0.9.3及更高的黄瓜。