Travis构建失败,导致致命的侦听错误

时间:2018-02-08 17:13:12

标签: ruby-on-rails testing travis-ci inotify

我的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测试中处理这个错误的最佳方法是什么?

1 个答案:

答案 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,以便进行文件监视和重新加载。