【问题标题】:How to ignore/stop pusher from logging to console when running UI automated tests运行 UI 自动化测试时如何忽略/停止推送器从日志记录到控制台
【发布时间】:2015-11-03 14:11:57
【问题描述】:

测试设置: Minitest+Capybara-poltergeist + phantomjs。

当我开始以无头模式运行测试时,推送器会将消息记录到控制台。有时这些消息太多了,以至于我错过了测试写入的日志。我试图通过执行以下操作来忽略这些消息,但这没有帮助。

Capybara.register_driver :poltergeist do |app|
    Capybara::Poltergeist::Driver.new(app, stdout: nil, phantomjs_logger: nil)
  end

推送消息示例 -

Pusher:状态改变:正在连接 -> 已连接

Pusher:状态改变:初始化 -> 连接

Pusher : 正在连接 : {"transport":"ws","url":"wss://ws.pusherapp.com:443/{此处已删除文字}2?protocol=7&client=js&version=3.0.0&flash =假"}

Pusher:状态改变:正在连接 -> 已连接

Pusher : 事件发送 : {"event":"pusher:subscribe","data":{"auth":"{removed the text here}","channel":"private-facility-{removed the text这里}}}

Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"private-facility-{removed the text here}}

Pusher :对于 pusher:subscription_succeeded 的 private-{removed the text here} 没有回调

Pusher:状态改变:初始化 -> 连接

关于如何停止记录到控制台的任何意见?

【问题讨论】:

    标签: logging phantomjs ui-automation pusher poltergeist


    【解决方案1】:

    Pusher JavaScript 库仅在 Pusher.log 属性已被分配一个函数时才会记录到控制台:

    Pusher.log = function(msg) {
      console.log(msg);
    };
    

    为确保在您的测试中不会发生日志记录,您应该确保没有将任何代码写入与上述示例类似的内容中。为了确保您可以在运行测试之前简单地 null Pusher.log 属性。

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

    【讨论】:

    • 当我将 pusher.log 设置为 null 时,我收到一条错误消息 -'Minitest::UnexpectedError: ArgumentError: wrong number of arguments (0 for 1+)。这是否意味着,应该在应用程序代码中更改 pusher.log 的值?
    • Pusher.logPusher 定义上的静态属性(参见大写的P)。它不是实例属性。
    • 我在这里输入的是 pusher.log,但实际上我在测试中设置了 Pusher.log。
    • 您看到的错误似乎不太可能是由 JavaScript 错误触发的。澄清 Pusher.log 应该在 JavaScript 上下文中设置,而不是在 Ruby 测试上下文中。
    猜你喜欢
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多