UNPKG

frankendoc

Version:

bringing documents alive

48 lines (34 loc) 1.22 kB
{ Stats } = require './stats' { Suites } = require './suites' _ = require 'underscore' class @Report start: -> @stats = new Stats @suites = new Suites this suite: (it) -> @suites.report it start_suite: (suite) -> @report "SuiteStarted name='#{suite.name}'" stop_suite: (suite) -> @report "SuiteFinished name='#{suite.name}' duration='#{suite.duration}'" running: (name) -> @name = @escape name @stats.start() @report "Started name='#{@name}'" finished: (@results) -> @[@stats.stop @results]() passed: -> @report "Finished name='#{@name}' duration='#{@stats.duration}'" failed: -> @report "Failed name='#{@name}' message='#{@message()}'" pending: -> @report "Ignored name='#{@name}' message='#{@message()}'" message: -> @escape @stats.messages().join '\n' stop: -> report: (message) -> console.log '##teamcity[test' + message + ']' escape: (s) -> s .replace(/\|/g, "||") .replace(/\n/g, "|n") .replace(/\r/g, "|r") .replace(/\[/g, "|[") .replace(/\]/g, "|]") .replace(/\u0085/g, "|x") .replace(/\u2028/g, "|l") .replace(/\u2029/g, "|p") .replace(/'/g, "|'")