Rspec 挂在 Ruby 2.7.4 上,没有输出

Posted

技术标签:

【中文标题】Rspec 挂在 Ruby 2.7.4 上,没有输出【英文标题】:Rspec hangs on Ruby 2.7.4 with no output 【发布时间】:2021-12-24 22:29:44 【问题描述】:

我正在从 Ruby 2.6.8 升级到 2.7.4。一切都很轻松,除了现在 Rspec 套件只是冻结了一些测试,没有输出、错误、警告或任何东西。我已经让它继续了一个多小时,但它永远不会进步。

我已尝试运行 rspec --backtrace,但没有提供更多信息。

有人知道我可以如何调试吗?

ruby (2.7.4)
rspec-rails (3.9.0)
rails (5.2.5)

【问题讨论】:

“一些测试” – 冻结的总是同一个测试吗? 总是一样,是的。 那么该测试有什么作用?和之前的测试有什么区别?注释掉行或在它们之间添加一些简单的puts 调用应该有助于找到问题。 在 Ruby 2.6.8 上,所有测试都按照您的预期运行。在这里,它只进行了大约 30 次测试,然后没有进一步进展。 puts 可能是要走的路,但即使我可以追踪失败的特定测试,也很难找到 原因 它失败且没有输出可查看 运行 rspec -fd 以查看规范的名称,然后使用 puts / cmets 缩小失败的范围。 【参考方案1】:

天哪,终于想通了。显然 Rails 5.2.x 实际上与 Ruby 2.7.x 不兼容。更新到 Rails 6.0.0 后,一切似乎又变得美好起来了。

【讨论】:

以上是关于Rspec 挂在 Ruby 2.7.4 上,没有输出的主要内容,如果未能解决你的问题,请参考以下文章

ruby 1.9 和 RSpec2 有啥好的突变测试工具吗?

ruby [rspec]“使用RSpec测试Rails程序”笔记

ruby ruby rspec测试示例

ruby Rspec+jenkins+allure持续集成

Rails rspec 最大化 CPU 并且没有完成

ruby 为Rspec添加Devise支持