我的Travis测试Rails应用程序一直运行良好,但突然开始失败大约一次三分之一:
$ bundle exec rails test
FATAL: Listen error: unable to monitor directories for changes.
Visit
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers
for info on how to fix this.
查看建议的网址,它提出了增加inotify-watchers数量的方法,但需要使用sudo
来更改限制。这在我的开发机器上很好(虽然我实际上没有在我的机器上遇到错误),但我不知道Travis环境中是否可能(或可取)。
我查看了Travis文档,看看是否有用于增加观察者数量的配置设置,但我找不到任何内容。
那么:在Travis CI测试中处理这个错误的最佳方法是什么?
答案 0 :(得分:2)
如果您在TravisCI和CI / staging / testing服务器上运行此操作,则无需查看文件以进行更改。代码应该部署到服务器,然后bundle exec rails test
应该运行,就是这样。没有必要的文件。
我怀疑您的环境配置设置不正确,并且只有在为开发环境激活时才会为测试环境激活listen gem。
尝试使用与TravisCI相同的环境在本地运行测试(在此示例中为testing
):
RAILS_ENV=testing bundle exec test
看看它说的是什么。如果它出现该错误,请检查config/environments/testing.rb
文件并查找config.cache_classes
。
当config.cache_classes
设置为true
时,会缓存这些类,并且监听/文件监视器将不会处于活动状态。在本地开发环境中,{{1 } {},config/environments/development.rb
设置应设置为false,以便进行文件监视和重新加载。