Rspec进程挂起在不同的地方,进程无法被杀死。如何诊断?

时间:2013-03-14 21:34:10

标签: 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语句,以确保它们完成执行,并且看起来都很好。

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

1 个答案:

答案 0 :(得分:0)

您的问题可能是订单依赖性错误,您可以传递种子并且订单将保持一致。 RSpec打印出用于播种随机数发生器的随机数。 使用此数字以相同的顺序运行rspec --order rand:3455