加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby优化不在CI服务器中工作

发布时间:2020-12-17 03:36:48 所属栏目:百科 来源:网络整理
导读:我在Jenkins服务器中遇到错误: $ruby -vruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] 运行rspec时,我有以下错误: undefined method `using' for #Class:0x000000026f9c88 (NoMethodError) 完全相同的代码在我的本地计算机上运行,??使用ruby2.
我在Jenkins服务器中遇到错误:

$ruby -v
ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux]

运行rspec时,我有以下错误:

undefined method `using' for #<Class:0x000000026f9c88> (NoMethodError)

完全相同的代码在我的本地计算机上运行,??使用ruby2.
这是我的版本:ruby 2.0.0dev(2012-12-01 trunk 38126)[x86_64-linux]
此外,它适用于irb.似乎ruby在运行脚本时没有识别using语句.

这是代码:

describe "blah" do
    include TestHelper
    using TestHelper::BrowserRefinement
    ...
end

澄清:细化在不同的文件中定义.我正在鞭打互联网,看看版本r39474和r38126之间是否存在差异.

解决方法

在当前版本的Ruby 2.0(2.0.0p0)中,using是顶级对象main的实例方法,而不是Module的实例方法.这是一种私人方法.如果在类/模块定义或方法定义中调用它,则会引发RuntimeError.

“main.using激活的一个改进的范围是从main.using被调用到调用main.using的文件的末尾之后.但是,当在第一个给出的字符串中调用main.using时内核#eval,Kernel#instance_eval或Module#module_eval的参数,范围的结尾是字符串的结尾.“

您可以在Refinements Specification中阅读更多相关信息.

对于您的测试用例,您可以使用eval编写它们并传入顶级绑定,例如ruby源中的test cases.

改进仍然是一个实验性功能,它可能在未来发生变化:-)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读