Ruby优化不在CI服务器中工作
我在Jenkins服务器中遇到错误:
$ruby -v ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-linux] 运行rspec时,我有以下错误: undefined method `using' for #<Class:0x000000026f9c88> (NoMethodError) 完全相同的代码在我的本地计算机上运行,??使用ruby2. 这是代码: 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. 改进仍然是一个实验性功能,它可能在未来发生变化:-) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |