Testing 如何使用Mocha/Velocity(流星测试)正确记录?
使用Meteor的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时进行日志记录。这将只在终端上输出测试框架消息。如果我需
我有一些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