【问题标题】:Disable rest-client output on minitest在 minitest 上禁用 rest-client 输出
【发布时间】:2017-09-04 14:51:09
【问题描述】:

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

我有一些使用 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'] 变量,但没有成功。

【问题讨论】:

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


    【解决方案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
    

    【讨论】:

    • 也许这是一种解决方法,但不是我想要的。有必要更改所有使用它的测试,并记住每次使用 rest-lcient 进行新测试。
    猜你喜欢
    • 1970-01-01
    • 2015-09-06
    • 1970-01-01
    • 2023-04-04
    • 2017-07-05
    • 2013-05-19
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多