黄瓜/萨翁忽略或删除日志输出

问题描述:

在运行黄瓜测试我收到(除测试结果)很多调试/日志相关的输出形式:黄瓜/萨翁忽略或删除日志输出

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

什么版本的莎翁您使用的是? 2.1.0?我希望你已经检查过http://savonrb.com/version2.html#changes – Bala 2013-03-12 10:55:42

+0

savon(1.2.0)。必须使用此版本(它是来自第三方的依赖项) – obaqueiro 2013-03-13 00:21:05

通过查看该Savon API的文档,你似乎能够做沉默的日志记录:

Savon.configure do |config| 
    config.log = false 
end 

的片段上方可以把你的Cucumber Worldfeatures/support/env.rb以沉默日志中黄瓜也是。

+2

谢谢,这与>一起实现了我想要的。 – obaqueiro 2013-03-13 17:11:21

日志可用于调试。因此,而不是完全沉默它可能会更好地将它们放在rails日志中。

这里是如何做到这一点在萨翁2:

# config/initializers/savon.rb 
HTTPI.logger = Rails.logger 

# when initializing client 
@client = Savon.client wsdl: '...', logger: Rails.logger