/grunt-mocha-cli

Run Mocha server-side tests in Grunt.

Primary LanguageJavaScriptMIT LicenseMIT

Grunt Mocha CLI

Build Status Build Status Dependency Status

Run Mocha server-side tests in Grunt.

Getting Started

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. You can install this plugin with this command:

npm install grunt-mocha-cli --save-dev

Usage

Options

All of the Mocha command line options are supported, plus some extras.

The list of test files to run can be specified using either the standard Grunt format or by using the files option. If neither is specified, the Mocha default will be used (test/*.js).

Warning: If you have a large number of test files, you should use the filesRaw option and not the standard Grunt format or the files option. Otherwise you risk hitting the operating system command line length limit.

Mocha Options

  • allow-uncaught (boolean) - enable uncaught errors to propagate.
  • async-only (boolean) - force all tests to take a callback (async).
  • bail (boolean) - bail after first test failure.
  • check-leaks (boolean) - check for global variable leaks.
  • colors (boolean) - force enabling of colors.
  • delay (boolean) - wait for async suite definition.
  • exit (boolean) - force shutdown of the event loop after test run: mocha will call process.exit.
  • fgrep (string) - only run tests containing .
  • forbid-only (boolean) - causes test marked with only to fail the suite.
  • forbid-pending (boolean) - causes pending tests and test marked with skip to fail the suite.
  • full-trace (boolean) - display the full stack trace.
  • globals (array) - allow the given comma-delimited global names.
  • grep (string) - only run tests matching .
  • growl (boolean) - enable growl notification support.
  • inline-diffs (boolean) - display actual/expected differences inline within each string.
  • invert (boolean) - inverts grep and fgrep matches.
  • log-timer-events (boolean) - time events including external callbacks.
  • no-colors (boolean) - force disabling of colors.
  • no-deprecation (boolean) - silence deprecation warnings.
  • no-diff (boolean) - do not show a diff on failure.
  • no-timeouts (boolean) - disables timeouts.
  • parallel (boolean) - run tests in parallel.
  • perf-basic-prof (boolean) - enable perf linux profiler (basic support).
  • recursive (boolean) - include sub directories.
  • reporter (string) - specify the reporter to use.
  • reporter-options (object) - specify the reporter options for some specific reporter, for example '{output: /tmp/out}' for 'xunit'.
  • require (array) - require the given modules.
  • retries (integer) - set number of times to retry a failed test case.
  • slow (integer) - "slow" test threshold in milliseconds [75].
  • sort (boolean) - sort test files.
  • throw-deprecation (boolean) - throw an exception anytime a deprecated function is used.
  • timeout (integer) - set test-case timeout in milliseconds [2000].
  • trace-deprecation (boolean) - show stack traces on deprecations.
  • trace (boolean) - trace function calls.
  • ui (string) - specify user-interface (bdd|tdd|exports).
  • use_strict (boolean) - enforce strict mode.

Extras

  • env (object) - hash of additional environment variables to pass to the Mocha process.
  • files (array) - globs of test files to run.
  • filesRaw (array) - globs of test files to run. These globs are passed directly to Mocha and aren't expanded by Grunt first.
  • flags (array) - set arbitrary node/mocha flags.
  • force (boolean) - continue running Grunt tasks even if tests fail.
  • quiet (boolean) - disable printing of Mocha's output to the terminal.
  • save (string) - write the mocha output to a file.

Examples

Define test files using the standard Grunt format:

grunt.initConfig({
  mochacli: {
    options: {
      require: ['should'],
      reporter: 'nyan',
      bail: true
    },
    all: ['test/*.js']
  }
})
grunt.loadNpmTasks('grunt-mocha-cli')
grunt.registerTask('test', ['mochacli'])

Define test files and basic options once, then customise options per target:

grunt.initConfig({
  mochacli: {
    options: {
      require: ['should'],
      files: 'test/*.js'
    },
    spec: {
      options: {
        reporter: 'spec'
      }
    },
    nyan: {
      options: {
        reporter: 'nyan'
      }
    }
  }
})
grunt.loadNpmTasks('grunt-mocha-cli')
grunt.registerTask('test', ['mochacli:spec'])

Contributing

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

License

Grunt Mocha CLI is released under the MIT license.

Copyright © 2013 Roland Warmerdam.