Travis 构建失败并出现致命的监听错误

Posted

技术标签:

【中文标题】Travis 构建失败并出现致命的监听错误【英文标题】:Travis builds are failing with fatal listen error 【发布时间】: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 测试中处理此错误的最佳方法是什么?

【问题讨论】:

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

【讨论】:

以上是关于Travis 构建失败并出现致命的监听错误的主要内容,如果未能解决你的问题,请参考以下文章

在 Worklight 中构建和部署失败并出现 openjpa 致命一般错误

Travis CI 构建 [Cocoapod Swift] 失败,没有“这样的模块...”错误

travis 无法构建,因为错误:找不到模块“react-test-renderer/shallow”

在终端中运行“pod setup”时,它失败并出现以下错误 -

加载 Symfony 2.8.3 时,travis+composer 反复失败

Travis CI 构建失败,因为没有输出