spec/lib/jspec.js
function(suite) {
      this.currentSuite = suite
      this.evalBody(suite.body)
      suite.ran = true
      hook('beforeSuite', suite), suite.hook('before')
      each(suite.specs, function(spec) {
        hook('beforeSpec', spec)
        suite.hook('before_each')
        JSpec.runSpec(spec)
        hook('afterSpec', spec)
        suite.hook('after_each')
      })
      if (suite.hasSuites()) {
        each(suite.suites, function(suite) {
          JSpec.runSuite(suite)
        })
      }
      hook('afterSuite', suite), suite.hook('after')
      this.stats.suitesFinished++
    }
function(suite) {
      this.currentSuite = suite
      this.evalBody(suite.body)
      suite.ran = true
      hook('beforeSuite', suite), suite.hook('before')
      each(suite.specs, function(spec) {
        hook('beforeSpec', spec)
        suite.hook('before_each')
        JSpec.runSpec(spec)
        hook('afterSpec', spec)
        suite.hook('after_each')
      })
      if (suite.hasSuites()) {
        each(suite.suites, function(suite) {
          JSpec.runSuite(suite)
        })
      }
      hook('afterSuite', suite), suite.hook('after')
      this.stats.suitesFinished++
    }
function ( suite ) { this . currentSuite = suite this . evalBody ( suite . body ) suite . ran = true hook ( 'beforeSuite' , suite ) , suite . hook ( 'before' ) each ( suite . specs , function ( spec ) { hook ( 'beforeSpec' , spec ) suite . hook ( 'before_each' ) JSpec . runSpec ( spec ) hook ( 'afterSpec' , spec ) suite . hook ( 'after_each' ) } ) if ( suite . hasSuites ( ) ) { each ( suite . suites , function ( suite ) { JSpec . runSuite ( suite ) } ) } hook ( 'afterSuite' , suite ) , suite . hook ( 'after' ) this . stats . suitesFinished ++ }
Run a suite.

@param  {Suite} suite
@api public
Run a suite .