在运行黄瓜测试时,我得到了(除测试结果外)很多与调试/日志相关的输出:
D, [2013-03-06T12:21:38.911829 #49031] DEBUG -- : SOAP request:
D, [2013-03-06T12:21:38.911919 #49031] DEBUG -- : Pragma: no-cache, SOAPAction: "", Content-Type: text/xml;charset=UTF-8, Content-Length: 1592
W, [2013-03-06T12:21:38.912360 #49031] WARN -- : HTTPI executes HTTP POST using the httpclient adapter
D, [2013-03-06T12:21:39.410335 #49031] DEBUG -- : <?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
...
有没有办法关闭此输出?我尝试按照this post中的说明操作,我的config_spec.rb文件是:
require "spec_helper"
describe Savon::Config do
let(:config) {
config = Savon::Config.new
config._logger = Savon::Logger.new
config.log_level = :error # changing the log level
HTTPI.log = false # to total silent the logging.
config
}
describe "#clone" do
it "clones the logger" do
logger = config.logger
clone = config.clone
logger.should_not equal(clone.logger)
end
end
it "allows to change the logger" do
logger = Logger.new("/dev/null")
config.logger = logger
config._logger.subject.should equal(logger)
end
it "allows to change the log level" do
Savon::Request.log_level = :info
config.log_level = :error
config._logger.level.should == :error
end
it "allows to enable/disable logging" do
config.log = false
config._logger.should be_a(Savon::NullLogger)
config.log = false
config._logger.should be_a(Savon::Logger)
end
end
但是当我进行黄瓜测试时,记录仍然显示。
答案 0 :(得分:10)
通过查看Savon API的文档,您似乎可以通过执行以下操作来使日志记录静音:
Savon.configure do |config|
config.log = false
end
上面的代码段可以放在Cucumber World或features/support/env.rb
中,以便在黄瓜中记录日志。
答案 1 :(得分:1)
日志可能对调试很有用。因此,不要完全沉默,而是将它们放在rails日志中更好。
以下是如何在savon 2中执行此操作:
# config/initializers/savon.rb
HTTPI.logger = Rails.logger
# when initializing client
@client = Savon.client wsdl: '...', logger: Rails.logger