Log 10 longest running specs

This commit is contained in:
Kevin Sawicki
2013-01-09 19:21:04 -08:00
parent 06e39595ba
commit f76db1f957

View File

@@ -6,6 +6,7 @@ module.exports.runSpecSuite = (specSuite, logErrors=true) ->
nakedLoad 'jasmine-focused'
$ = require 'jquery'
_ = require 'underscore'
$('body').append $$ ->
@div id: 'jasmine-content'
@@ -18,5 +19,35 @@ module.exports.runSpecSuite = (specSuite, logErrors=true) ->
require specSuite
jasmineEnv = jasmine.getEnv()
jasmineEnv.addReporter(reporter)
class TimeReporter extends jasmine.Reporter
timedSpecs: []
reportSpecStarting: (spec) ->
stack = [spec.description]
suite = spec.suite
while suite
stack.unshift suite.description
suite = suite.parentSuite
@time = new Date().getTime()
@description = stack.join(' -> ')
reportSpecResults: ->
return unless @time? and @description?
@timedSpecs.push
description: @description
time: new Date().getTime() - @time
@time = null
@description = null
reportRunnerResults: ->
console.log '10 longest running specs:'
for spec in _.sortBy(@timedSpecs, (spec) -> -spec.time)[0...10]
console.log "#{spec.time}ms"
console.log spec.description
jasmineEnv.addReporter(new TimeReporter())
jasmineEnv.specFilter = (spec) -> reporter.specFilter(spec)
jasmineEnv.execute()