ruby - Rspec 进程在不同的地方挂起,无法终止进程。如何诊断?

标签 ruby macos rspec imagemagick minimagick

在我正在开发的 Rails 应用程序(在 OS-X 上)中,我发现通过 rspec 运行测试套件越来越频繁地锁定。它不会每次都发生。我试过在运行套件时添加 --format documentation 以查看它是否每次都在同一个地方发生,但事实并非如此。

我试过使用 kill -9 终止进程。然后它将名称更改为 (ruby),进程状态为 ?E。这link建议进程被阻塞等待系统调用完成。每次发生这种情况时,我都必须重新启动我的机器才能终止此进程。

我已经尝试重新安装 rvm、ruby、mysql 和 imagemagick。这个项目正在使用 imagemagick(通过 mini_magick)gem,我怀疑它可能是导致 rspec 阻塞的这些命令之一。我尝试在每个 mini_magick 命令周围添加 puts 语句,以确保它们完成执行,并且一切看起来都很好。

我正在寻找有关如何诊断此问题的建议。

最佳答案

您的问题可能是顺序依赖性错误,您可以传递种子,顺序将保持一致。 RSpec 打印出它用来为随机化器播种的随机数。 使用此编号以相同的顺序运行 rspec --order rand:3455

关于ruby - Rspec 进程在不同的地方挂起,无法终止进程。如何诊断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420633/

相关文章:

ruby-on-rails - 在 Ruby 中运行 eval 有安全的方法吗?

ruby - 变量方法调用 - 正确的 Ruby 语法?

c++ - 使用 AVScreenCaptureInput 进行 OSX 屏幕捕获

ruby-on-rails - 在 ActiveMerchant 中测试 Paypal Express

ruby-on-rails - 捆绑 rspec/spec 失败

ruby-on-rails - 使用 Rspec 和 Rack::Test 测试 REST-API 响应

html - 在 HTML [REGEX, RUBY] 中从 <!--[if gte mso 9]> 移除到 <![endif]-->

ruby-on-rails - Rails 追加未将对象添加到 has_many :through

xcode - 升级到 XCode 4.4 后运行 Mac 应用程序时权限被拒绝

macos - 了解 xattr -p com.apple.quarantine 的输出