Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 如何使用Mocha/Velocity(流星测试)正确记录?_Testing_Logging_Meteor_Velocity - Fatal编程技术网

Testing 如何使用Mocha/Velocity(流星测试)正确记录?

Testing 如何使用Mocha/Velocity(流星测试)正确记录?,testing,logging,meteor,velocity,Testing,Logging,Meteor,Velocity,使用Meteor的velocity框架注销测试信息的正确方法是什么 我有一些mocha测试,我想从中输出一些值,我想如果输出可以在velocity窗口的logs部分结束会很好。。。但似乎哪里都没有任何文档?我也没有看到文档 我不知道如何将消息记录到Velocity窗口,尽管我不喜欢登录到UI的想法 我所做的是创建了一个简单的Logger对象,它封装了我的所有控制台。{{method}调用并防止在process.env.is\u MIRROR时进行日志记录。这将只在终端上输出测试框架消息。如果我需

使用Meteor的velocity框架注销测试信息的正确方法是什么


我有一些mocha测试,我想从中输出一些值,我想如果输出可以在velocity窗口的logs部分结束会很好。。。但似乎哪里都没有任何文档?

我也没有看到文档

我不知道如何将消息记录到Velocity窗口,尽管我不喜欢登录到UI的想法


我所做的是创建了一个简单的Logger对象,它封装了我的所有控制台。{{method}调用并防止在
process.env.is\u MIRROR
时进行日志记录。这将只在终端上输出测试框架消息。如果我需要调试一个特定的测试,我会在Logger上激活日志输出一段时间。

这是一个可怕的黑客行为。它将公开写入数据库的未受保护的方法。

但它是有效的

我真的很恼火没有这个功能,所以我深入研究了一下,发现他们有一个可以全局访问的
VelocityLogs
集合。但是,您需要从您的产品而不是测试实例访问它,才能在WebReporter中看到它

因此,我花了很长时间才启用Meteor CORS,但我最终成功地在IronRouter中创建了一条新路由,将消息发送到。(CORS可能会更好——但无论如何,你真的不应该暴露这一点。)

为此,您需要
meteor添加http

放置在以下各项的外部

if Meteor.isServer
  Router.route 'log', ->
    if @request.method is 'OPTIONS'
      @response.setHeader 'Access-Control-Allow-Origin', '*'
      @response.setHeader 'Access-Control-Allow-Methods', 'POST, OPTIONS'
      @response.setHeader 'Access-Control-Max-Age', 1000
      @response.setHeader 'Access-Control-Allow-Headers', 'origin, x-csrftoken, content-type, accept'
      @response.end()

      return

    if @request.method is 'POST'
      logEntry = @request.body

      logEntry.level ?= 'unspecified'
      logEntry.framework ?= 'log hack'
      logEntry.timestamp ?= moment().format("HH:mm:ss.SSS")

      _id = VelocityLogs.insert(logEntry)

      @response.setHeader 'Access-Control-Allow-Origin', '*'
      @response.end(_id)

      return

  , where: 'server'
测试/mocha/lib
或类似功能中,作为实用功能:

@log = (message, framework, level) ->
  HTTP.post "http://localhost:3000/log",
    data: { message: message, framework: framework, level: level}
    (error) -> console.dir error
对于讨厌咖啡的人:>立即尝试>粘贴代码以进行转换>获取好的旧JavaScript