Support logging longest suites

This commit is contained in:
Kevin Sawicki
2013-01-10 09:29:22 -08:00
parent 14d9fc5e45
commit c3a993c1f6

View File

@@ -4,6 +4,7 @@ module.exports =
class TimeReporter extends jasmine.Reporter
timedSpecs: []
timedSuites: {}
constructor: ->
window.logLongestSpec = -> window.logLongestSpecs(1)
@@ -13,11 +14,19 @@ class TimeReporter extends jasmine.Reporter
console.log "#{spec.time}ms"
console.log spec.description
window.logLongestSuite = -> window.logLongestSuites(1)
window.logLongestSuites = (number=10) =>
console.log "#{number} longest running suites:"
suites = _.map(@timedSuites, (key, value) -> [value, key])
for suite in _.sortBy(suites, (suite) => -suite[1])[0...number]
console.log suite[0], suite[1]
reportSpecStarting: (spec) ->
stack = [spec.description]
suite = spec.suite
while suite
stack.unshift suite.description
@suite = suite.description
suite = suite.parentSuite
@time = new Date().getTime()
@@ -27,8 +36,14 @@ class TimeReporter extends jasmine.Reporter
reportSpecResults: ->
return unless @time? and @description?
duration = new Date().getTime() - @time
@timedSpecs.push
description: @description
time: new Date().getTime() - @time
time: duration
if @timedSuites[@suite]
@timedSuites[@suite] += duration
else
@timedSuites[@suite] = duration
@time = null
@description = null