【问题标题】:Travis builds are failing with fatal listen errorTravis 构建失败并出现致命的监听错误
【发布时间】:2018-02-08 17:13:11
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    如果您在 TravisCI 和 CI/staging/testing 服务器上运行此程序,则不需要监视文件的更改。代码应该部署到服务器,然后bundle exec rails test 应该运行,就是这样。无需观看文件。

    我怀疑您的环境的配置设置不正确,并且侦听 gem 以某种方式为测试环境激活,而它应该只为开发环境激活。

    尝试使用与 TravisCI 相同的环境(在此示例中为 testing)在本地运行测试:

    RAILS_ENV=testing bundle exec test
    

    看看它说了什么。如果它给您该错误,请检查config/environments/testing.rb 文件并查找config.cache_classes

    config.cache_classes 设置为true 时,类会被缓存,并且监听/文件观察器将不会处于活动状态。 在您的本地开发环境中,config/environments/development.rb,@987654329 @ 设置应设置为 false,以便进行文件监视和重新加载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 2022-11-10
      • 1970-01-01
      相关资源
      最近更新 更多