Travis 构建失败并出现致命侦听错误
Travis builds are failing with fatal listen error
我对 Rails 应用程序的 Travis 测试一直运行良好,但突然开始失败大约三分之一的时间:
$ 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.
查看建议 URL,它提出了增加 inotify-watchers 数量的方法,但需要使用 sudo
来更改限制。这在我的开发机器上很好(虽然我实际上没有在我的机器上遇到错误),但我不知道这在 Travis 环境中是否可行(或可取)。
我查看了 Travis 文档以查看是否有用于增加观察者数量的配置设置,但我找不到任何东西。
那么:在 Travis CI 测试中处理此错误的最佳方法是什么?
如果您 运行 在 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
时,类被缓存,listen/file-watcher不会被激活。在您的本地开发环境 config/environments/development.rb
中,config.cache_classes
设置应设置为 false,以便进行文件监视和重新加载。
我对 Rails 应用程序的 Travis 测试一直运行良好,但突然开始失败大约三分之一的时间:
$ 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.
查看建议 URL,它提出了增加 inotify-watchers 数量的方法,但需要使用 sudo
来更改限制。这在我的开发机器上很好(虽然我实际上没有在我的机器上遇到错误),但我不知道这在 Travis 环境中是否可行(或可取)。
我查看了 Travis 文档以查看是否有用于增加观察者数量的配置设置,但我找不到任何东西。
那么:在 Travis CI 测试中处理此错误的最佳方法是什么?
如果您 运行 在 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
时,类被缓存,listen/file-watcher不会被激活。在您的本地开发环境 config/environments/development.rb
中,config.cache_classes
设置应设置为 false,以便进行文件监视和重新加载。