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”时,它失败并出现以下错误 -