ruby-on-railsrubyminitestrest-clientwebmock

Disable rest-client output on minitest


I've searched for this, but without success.

I have some tests (minitest) that use RestClient and Webmock. When passing for those tests I always have the request logged, polluting the test ouput:

[$] 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

Is there a way to disable this ?

[EDIT]

Just to add, if I call the same address using ruby URL I have nothing logged (even using webmock) so it really is something related with Rest-client.

I already tried to set the ENV['RESTCLIENT_LOG'] variable, but without success.


Solution

  • What about:

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

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

    You have many other options to redirect the log output:

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

    In last resort you could monkey patch:

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