Ruby on rails 不断获得;“打开的文件太多”;运行测试时

Ruby on rails 不断获得;“打开的文件太多”;运行测试时,ruby-on-rails,rspec,Ruby On Rails,Rspec,每当我运行RSpec测试时(可能每天1-3次),我会收到以下错误消息: Errno::EMFILE: Too many open files - socket(2) for "127.0.0.1" port 9523 如果我运行rm-rftmp/*,它通常会修复一段时间的问题,但之后它又会回来 什么原因可能导致这种情况?如果应用程序打开了很多文件,但没有关闭它们,则可能会发生这种情况。文件描述符数量有限:cat/proc/sys/fs/file max。 在不需要打开的

每当我运行RSpec测试时(可能每天1-3次),我会收到以下错误消息:

Errno::EMFILE:
  Too many open files - socket(2) for "127.0.0.1" port 9523
如果我运行
rm-rftmp/*
,它通常会修复一段时间的问题,但之后它又会回来


什么原因可能导致这种情况?

如果应用程序打开了很多文件,但没有关闭它们,则可能会发生这种情况。文件描述符数量有限:
cat/proc/sys/fs/file max
。 在不需要打开的文件时关闭它们,或在每次测试运行后自动删除它们:

# spec/spec_helper.rb

config.after(:suite) do # or :each or :all
 Dir["#{Rails.root}/tmp/**/*"].each do |file|
   File.delete(file)
 end
end