mirror of
https://github.com/atom/atom.git
synced 2026-04-06 03:02:13 -04:00
Support logging longest suites
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user