在我正在开发的 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/