Logging 如何在运行UI自动测试时忽略/停止pusher登录到控制台

Logging 如何在运行UI自动测试时忽略/停止pusher登录到控制台,logging,phantomjs,ui-automation,pusher,poltergeist,Logging,Phantomjs,Ui Automation,Pusher,Poltergeist,测试设置:小型测试+水豚妖怪+幻影 当我开始在headless模式下运行测试时,pusher将消息记录到控制台。有时这些消息太多,以至于我丢失了测试所写的日志。我试图通过执行以下操作来忽略这些消息,但这没有帮助 Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, stdout: nil, phantomjs_logger: nil) end 推送消息示例- 推送器

测试设置:小型测试+水豚妖怪+幻影

当我开始在headless模式下运行测试时,pusher将消息记录到控制台。有时这些消息太多,以至于我丢失了测试所写的日志。我试图通过执行以下操作来忽略这些消息,但这没有帮助

Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new(app, stdout: nil, phantomjs_logger: nil)
  end
推送消息示例-

推送器:状态更改:正在连接->已连接

推送器:状态已更改:已初始化->正在连接

推送器:正在连接:{“传输”:“ws”,“url”:wss://ws.pusherapp.com:443/{删除了此处的文本}2?protocol=7&client=js&version=3.0.0&flash=false“}

推送器:状态更改:正在连接->已连接

Pusher:Event sent:{“事件”:“Pusher:subscribe”,“数据”:{“auth”:“{删除此处的文本}”,“频道”:“专用设施-{删除此处的文本}}”

推送器:事件记录:{“事件”:“推送器内部:订阅成功”,“数据”:{},“频道”:“专用设施-{删除此处的文本}”

Pusher:private上没有回调-{删除此处的文本}Pusher:subscription\u成功

推送器:状态已更改:已初始化->正在连接


关于如何停止登录控制台的任何输入?

如果已为
Pusher.log
属性分配了一个函数,则Pusher JavaScript库只会登录控制台:

Pusher.log = function(msg) {
  console.log(msg);
};
为了确保日志记录不会在测试中发生,您应该确保没有向测试中写入类似于上述示例的代码。确保在运行测试之前,您可以简单地
null
使用
Pusher.log
属性


有关更多信息,请参阅上的文档。

当我将pusher.log设置为null时,会收到一条错误消息-“Minitest::UnexpectedError:ArgumentError:参数数目错误(0表示1+)。这是否意味着应在应用程序代码中更改pusher.log值?
pusher.log
pusher
定义中的静态属性(请参见大写的
P
)。它不是实例属性。我在这里键入了pusher.log,但实际上我在测试中设置了pusher.log。您看到的错误似乎不太可能是由JavaScript错误触发的。为了澄清这一点,Pusher.log应该在JavaScript上下文中设置,而不是在Ruby测试上下文中设置。