在我正在开发的rails应用程序中(在OS-X上),我发现通过rspec越来越频繁地锁定运行测试套件。它不会每次都发生。我在运行套件时尝试添加--format documentation
以查看它是否每次都发生在同一个地方,但事实并非如此。
我尝试使用kill -9
杀死该进程。然后,它将名称更改为(ruby),进程状态为?E
。此link表示进程被阻塞,等待系统调用完成。每次发生这种情况时我都必须重新启动我的机器才能终止这个过程。
我已经尝试重新安装rvm,ruby,mysql和imagemagick。这个项目正在使用imagemagick(通过mini_magick)gem,我怀疑它可能是导致rspec阻塞的这些命令之一。我尝试在每个mini_magick命令周围添加puts
语句,以确保它们完成执行,并且看起来都很好。
我正在寻找有关如何诊断此问题的建议。
答案 0 :(得分:0)
您的问题可能是订单依赖性错误,您可以传递种子并且订单将保持一致。
RSpec打印出用于播种随机数发生器的随机数。
使用此数字以相同的顺序运行rspec
--order rand:3455