 
   once: (args...) ->
     Testify.emitter.once(args...)
+
   # set at runtime to modify behavior
   options:
     color: true

    TestContext.reporter = Testify.reporter || new Testify.ConsoleReporter()
    suite = new TestContext(name, fn)
    Testify.count++
    suite.emitter.once "COMPLETE", ->
      Testify.count--
      if Testify.count == 0
        Testify.emitter.emit "done"
    suite.run()

  benchmark: (name, fn) ->
    Benchmark = require("./benchmark")
    new Benchmark(name, fn)


module.exports = Testify

EventEmitter = require("events").EventEmitter

TestContext = require("./test")


Testify =
  Context: require("./context")
  ConsoleReporter: require("./reporters").ConsoleReporter
  DOMReporter: require("./reporters").DOMReporter
  TestContext: TestContext
