Skip to content

Commit

Permalink
got teamcity report
Browse files Browse the repository at this point in the history
  • Loading branch information
msuarz committed Aug 26, 2012
1 parent 0817af4 commit 60b0727
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 13 deletions.
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "frankendoc",
"version": "0.2.1",
"version": "0.2.2",
"description" : "bringing documents alive",
"repository" : { "type" : "git", "url" : "https://github.com/limadelic/frankendoc.git" },
"keywords" : ["testing", "atdd", "bdd"],
Expand Down
7 changes: 4 additions & 3 deletions src/frankendoc.coffee
Expand Up @@ -15,14 +15,15 @@ class Frank
@classes.read @files.code

run:->
@report.start()
@read()

for doc in @files.docs
@report.start doc.name
@report.running doc.name
results = @runner.run_steps @classes.new(), doc.steps
@report.stop results
@report.finished results

@report.totals()
@report.stop()

@frank = -> Fiber(-> new Frank().run()).run()

17 changes: 8 additions & 9 deletions src/reports/console.coffee
Expand Up @@ -2,10 +2,6 @@

class @Report

constructor: ->
@empty_line()
@stats = new Stats

icons:
passed: ''
failed: ' x '
Expand All @@ -18,10 +14,14 @@ class @Report

color: (text) -> '\u001b[' + @colors[@status] + 'm' + text + '\u001b[0m'

start: (@name) ->
start: ->
@empty_line()
@stats = new Stats

running: (@name) ->
@stats.start()

stop: (@results) ->
finished: (@results) ->
return unless @results.length
@status = @stats.stop @results
@report_doc()
Expand All @@ -31,10 +31,9 @@ class @Report
console.log @color @icons[@status] + @name + ' (' + @stats.duration + 'ms)'

report_unsuccessful_steps: ->
for result in @results when not result.passed
console.log ' ' + result.step + ': ' + (result.message ? 'pending')
console.log ' ' + msg for msg in @stats.messages()

totals: ->
stop: ->
@empty_line()
console.log(
@stats.docs + ' docs, ' +
Expand Down
4 changes: 4 additions & 0 deletions src/reports/stats.coffee
Expand Up @@ -23,6 +23,10 @@ class @Stats
return @status = 'failed' if result.failed
@status = 'pending'

messages: ->
for result in @results when not result.passed
result.step + ': ' + (result.message ? 'pending')

count: ->
@docs++
@[@status]++
Expand Down
30 changes: 30 additions & 0 deletions src/reports/teamcity.coffee
@@ -0,0 +1,30 @@
{ Stats } = require './stats'
_ = require 'underscore'

class @Report

suite_name: settings.name ? 'frankendoc'

start: ->
@stats = new Stats
@report "SuiteStarted name='#{@suite_name}'"

running: (@name) ->
@stats.start()
@report "Started name='#{@name}'"

finished: (@results) ->
return unless @results.length
@[@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 "SuiteFinished name='#{@suite_name}' duration='#{@stats.time}'"

report: (message) ->
console.log '##teamcity[test' + message + ']'

0 comments on commit 60b0727

Please sign in to comment.