harmonize: 使gulp支持ECMA 6
  gulp-develop-server: 用于启动node.js connect based Web Server
  gulp-sync: 用于同步运行tasks
  gulp-task-listing: 为gulp.js添加help支持, 可以列出gulpfile中的所有tasks.
  配置gulpfile

  require("harmonize")()
  gulp = require 'gulp'
  gulpsync = require('gulp-sync')(gulp)
  server = require 'gulp-develop-server'
  coffeelint = require 'gulp-coffeelint'
  mocha = require 'gulp-mocha'
  karma = require 'gulp-karma'
  coffee = require 'gulp-coffee'
  task_listing = require('gulp-task-listing')
  gulp.task 'help', task_listing.withFilters null, 'sync'
  gulp.task 'coffee:lint', ->
  gulp.src(['app/**/*.coffee', './*.coffee'])
  .pipe(coffeelint('config/coffeelint.json'))
  .pipe(coffeelint.reporter())
  .pipe(coffeelint.reporter('fail'))
  gulp.task 'coffee:compile', ['coffee:lint'], ->
  gulp.src ['app.coffee', './app/**/*.coffee']
  .pipe coffee()
  .pipe gulp.dest('./dist')
  gulp.task 'test:unit', ['coffee:lint'], ->
  gulp.src('spec/**/*.coffee')
  .pipe(mocha(reporter: 'spec'))
  gulp.task 'test:ui', ['coffee:compile'],  ->
  server.listen path: './dist/app.js'
  gulp.src('acceptence-test/**/*.coffee')
  .pipe(mocha(reporter: 'spec'))
  .on 'error', () -> server.kill()
  .on 'end', () -> server.kill()
  gulp.task 'test', gulpsync.sync(['test:unit', 'test:ui']), ->
  gulp.task 'clean', ->
  console.log 'clean task...'
  gulp.task 'default', ['clean'], ->
  gulp.start 'test'

  运行测试

  gulp test:ui

  运行结果

  [11:03:21] Starting 'coffee:lint'...
  [11:03:22] Finished 'coffee:lint' after 184 ms
  [11:03:22] Starting 'coffee:compile'...
  [11:03:22] Finished 'coffee:compile' after 114 ms
  [11:03:22] Starting 'test:ui'...
  server listening on 5000
  [11:03:22] Development server listening. (PID:6427)
  User visit admin projects page
  and has login
  when click profile button
  ? should see dropdown menu
  ? should see project admin item
  ? should see logout item
  when click project admin link
  ? should visit to admin page
  when click logout link
  ? should logout
  ? should redirect to login page
  User visits login page
  submits login form
  ? should be successful
  ? should visit admin page
  ? should see profile button with email
  9 passing (6s)
  [11:03:28] Finished 'test:ui' after 6.08 s
  [11:03:28] Development server was stopped. (PID:6427)

  由于已经将test:ui加入到default task中. 直接运行 gulp 便可运行所有测试.