"eval"已弃用.请改用"评估"

And*_*rew 7 ruby linux ruby-on-rails cucumber

从最近开始写黄瓜功能我得到了警告

[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
Run Code Online (Sandbox Code Playgroud)

一切正常,但这个警告让我感到不安.我正在使用Rails 3.1.0ruby 1.9.3p392(2013-02-22修订版39386)[x86_64-linux].我的文件是:

item.feature:

Background: logged in as an admin
Given I am logged in as an administrator
Run Code Online (Sandbox Code Playgroud)

user_steps.rb

 Given /^I am logged in as an administrator$/ do
 steps %Q{
   Given the following users exist:
    | email               | password         | role       |
    | admin@test.com      | admin_password   | admin      |
    | visitor@visitor.com | visitor_password | registered |
   And I am on the "home page"
   And I follow "Login"
   And I fill in "Email" with "admin@test.com"
   And I fill in "Password" with "admin_password"
   And I press "Sign in"
   Then I should see "admin"
}
end
Run Code Online (Sandbox Code Playgroud)

结果我有:

 Background: logged in as an admin            # features/item.feature:6
[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
[DEPRECATION] "eval" is deprecated. Please use "evaluate" instead
Run Code Online (Sandbox Code Playgroud)

Eri*_*c C 8

进入完全相同的问题.它没有破坏任何东西,它只是丑陋.

它似乎与代码不匹配.Gherkin已经弃用evalevaluate,Cucumber称之为旧方法.在github上已经准备好了拉取请求和关闭的问题

在Cucumber更新之前,最快速,最简单的解决方案,可能很快就是将此行添加到您的Gemfile中:

gem 'gherkin', '<= 2.11.6'
Run Code Online (Sandbox Code Playgroud)

这将迫使小黄瓜回到eval被弃用之前的时间.

编辑:

黄瓜宝石似乎已经更新,不再产生弃用警告.