只是想为其他像我一样不熟悉工厂女孩的人发布我发现的关于工厂女孩的快速信息。此解决方案的用例可能有限,但值得发布。
我在其中一个项目中为控制器运行 rspec,由于某种原因,某些测试无法运行。不是全部,只是一些。我尝试删除该测试文件中的所有内容并运行它 - 它成功找到了 0 个示例,因此很明显正在读取该文件。
只是想为其他像我一样不熟悉工厂女孩的人发布我发现的关于工厂女孩的快速信息。此解决方案的用例可能有限,但值得发布。
我在其中一个项目中为控制器运行 rspec,由于某种原因,某些测试无法运行。不是全部,只是一些。我尝试删除该测试文件中的所有内容并运行它 - 它成功找到了 0 个示例,因此很明显正在读取该文件。
解决方案最终很简单:我在测试环境中有一个 rails 控制台,沙箱环境正在运行(您可以使用“rails c test”开始它并为沙箱模式添加 -s 标志,供您自己参考)。当您让 Factory Girl 更改沙盒环境时,在终止沙盒会话之前在应用程序的其他任何位置运行 Factory Girl 会导致它锁定。
对我来说,它在后台运行,因为我之前让它运行并使用 ctrl + z 停止它。解决方案是简单地使用终止 rails 控制台进程
ps aux | grep rails
并使用 pid(例如 1234)
sudo kill -9 1234
我可以假设无论您是否使用 Factory Girl,都可能会发生类似的问题,并且在您对沙箱进行更改时会出现更多问题,但是这个问题。
编辑:我已经确认这只是一个 FactoryGirl 问题 - 通过 Rails 控制台中的其他方式创建条目(例如),即使 Rails 沙箱正在运行 Factory Girl 更改,也不会导致问题。基本上,这个问题只有在你在一个 rails c 测试沙箱中运行 Factory Girl 时才会出现,然后据我所知尝试在其他地方运行 Factory Girl。