在 minitest 上禁用 rest-client 输出
Disable rest-client output on minitest
我搜索过这个,但没有成功。
我有一些使用 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']
变量,但没有成功。
怎么样:
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
我搜索过这个,但没有成功。
我有一些使用 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']
变量,但没有成功。
怎么样:
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