在minitest上禁用rest-client输出

时间:2017-09-04 14:51:10

标签: ruby-on-rails ruby minitest rest-client webmock

我搜索过这个,但没有成功。

我有一些使用RestClient和Webmock的测试(minitest)。当通过这些测试时,我总是记录请求,污染测试输出:

[$] rake                                                                                                 

Run options: --seed 60435

Running:
.........................................................RestClient.get "http://example.com/some_controller/some_action?userLocale=fr_FR", "Accept"=>"*/*", "Accept-Encoding"=>"gzip, deflate", "User-Agent"=>"rest-client/2.0.0 (darwin14.1.0 x86_64) ruby/2.2.1p85" # => 200 OK |  4 bytes

有没有办法禁用它?

[编辑]

只是添加,如果我使用ruby URL调用相同的地址我没有记录(甚至使用webmock)所以它确实是与Rest-client相关的东西。

我已经尝试设置ENV['RESTCLIENT_LOG']变量,但没有成功。

1 个答案:

答案 0 :(得分:1)

怎么样:

RestClient.stub :log, '' do
  # Your test code here
end

http://www.rubydoc.info/gems/minitest/4.2.0/Object:stub

您还有许多其他选项可以重定向日志输出:

  • test_helper.rb

    RestClient.log = 'tmp/test.log'
    

http://www.rubydoc.info/gems/rest-client/1.8.0/RestClient.log=

  • 从命令行:

    RESTCLIENT_LOG=tmp/restclient.log bundle exec rails test
    

最后的手段中你可以修补补丁:

# test_helper.rb
RestClient.class_eval do
  def self.log
    ''
  end
end