实例变量未在 TravisCI 上初始化

Instance variable not initialized on TravisCI

我有一个问题 运行 我在 TravisCI 上的测试套件。它曾经是绿色的,但自从一段时间以来,我收到了一大堆消息,例如:

/home/travis/build/PuzzleFlow/tochtli/vendor/bundle/ruby/2.3.0/gems/bunny-2.3.0/lib/bunny/cruby/socket.rb:37: warning: instance variable @__bunny_socket_eof_flag__ not initialized

因此,日志超过 4MB 大小并且作业失败(尽管当我读取完整日志时,测试通过了)。由于这是一个外部库,我不能更改它的代码。我检查了 bunny/amq-protocol 的许多版本,但似乎无关。我也不为此使用 rspec,我使用 minitest.

我该怎么做才能避免这些消息并获得干净的构建输出?

参见:

问题出在这一行:

/home/travis/.rvm/rubies/ruby-2.3.0/bin/ruby -W -w -I"lib:lib:test" -I"/home/travis/build/PuzzleFlow/tochtli/vendor/bundle/ruby/2.3.0/gems/rake-11.1.1/lib" "/home/travis/build/PuzzleFlow/tochtli/vendor/bundle/ruby/2.3.0/gems/rake-11.1.1/lib/rake/rake_test_loader.rb" "test/**/*_test.rb" 

这里的 -w 表示您 运行 处于警告模式。有关更多说明,请参阅 ruby --help

您的项目似乎有 rake 的更新版本。 rake/testtask 似乎默认使用警告选项。尝试将其设置为 false:https://github.com/ruby/rake/blob/master/lib/rake/testtask.rb#L51

编辑:

看来你还需要设置 verbose = false 因为 https://github.com/ruby/rake/blob/master/lib/rake/testtask.rb#L131

Rakefile 中的行应为:

Rake::TestTask.new(:test) do |test|
  test.libs << 'lib' << 'test'
  test.pattern = 'test/**/*_test.rb'
  test.verbose = false
  test.warning = false
end