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

ruby-on-rails – 无法从带有rails 3.0.10的回溯RSPEC中找到匹配

发布时间:2020-12-17 01:59:52 所属栏目:百科 来源:网络整理
导读:由于sql注入漏洞,我已更新到3.0.10.我更新后,我运行测试,他们都开始抛出上述错误以及以下行. Failure/Error: Unable to find matching line from backtraceSystemStackError: stack level too deep# /home/part/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3
由于sql注入漏洞,我已更新到3.0.10.我更新后,我运行测试,他们都开始抛出上述错误以及以下行.

Failure/Error: Unable to find matching line from backtrace
SystemStackError:
  stack level too deep
# /home/part/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract/database_statements.rb:153

解决方法

在将项目从Rails 2.3.8升级到3.2.2时,我在运行Cucumber功能时遇到了类似的错误.几乎没有办法我知道你可以找到这个错误的堆栈跟踪.

在我的例子中,真正的问题是双重包含一个名为rest-client的库,一次作为插件,一次作为gem.它在我的Gemfile中,以及我的vendor / plugins目录中.也许你可以快速检查你的项目是否有类似的东西.

我通过在代码的几个地方使用’raise’的繁琐过程发现了这一点.在导致此错误的rspec语句的执行路径中,将raise方法调用放在不同的位置,例如

raise StandardError,'code did reach here'

通过一些二进制搜索逻辑,这将使您接近罪魁祸首代码.一旦你在那里,使用以下构造来获得堆栈跟踪.

begin
  # culprit code is here
rescue Exception => e
  puts e.message
  puts e.backtrace.inspect
end

这至少对我有用,希望它对你有所帮助.

(编辑:李大同)

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

    推荐文章
      热点阅读