Skip to content

Releases: mochajs/mocha

v6.0.0-0

21 Feb 18:44
8de7fae
Compare
Choose a tag to compare
v6.0.0-0 Pre-release
Pre-release

6.0.0-0 / 2019-01-01

Documentation for this release can be found at next.mochajs.org!

Welcome @plroebuck, @craigtaub, & @markowsiak to the team!

💥 Breaking Changes

  • #3149: Drop Node.js v4.x support (@outsideris)
  • #3556: Changes to command-line options (@boneskull):
    • --grep and --fgrep are now mutually exclusive; attempting to use both will cause Mocha to fail instead of simply ignoring --grep
    • --compilers is no longer supported; attempting to use will cause Mocha to fail with a link to more information
    • -d is no longer an alias for --debug; -d is currently ignored
    • #3275: --watch-extensions no longer implies js; it must be explicitly added (@TheDancingCode)
  • #2908: tap reporter emits error messages (@chrmod)
  • #2819: When conditionally skipping in a before hook, subsequent before hooks and tests in nested suites are now skipped (@bannmoore)
  • #627: Emit filepath in "timeout exceeded" exceptions where applicable (@boneskull)
  • #3556: lib/template.html has moved to lib/browser/template.html (@boneskull)
  • #2576: An exception is now thrown if Mocha fails to parse or find a mocha.opts at a user-specified path (@plroebuck)
  • #3458: Instantiating a Base-extending reporter without a Runner parameter will throw an exception (@craigtaub)
  • #3125: For consumers of Mocha's programmatic API, all exceptions thrown from Mocha now have a code property (and some will have additional metadata). Some Error messages have changed. Please use the code property to check Error types instead of the message property; these descriptions will be localized in the future. (@craigtaub)

📠 Deprecations

These are soft-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:

  • -gc users should use --gc-global instead
  • Consumers of the function exported by bin/options should now use the loadMochaOpts or loadOptions (preferred) functions exported by the lib/cli/options module

Regarding the Mocha class constructor (from lib/mocha):

  • Use property color: false instead of useColors: false
  • Use property timeout: false instead of enableTimeouts: false

All of the above deprecations were introduced by #3556.

mocha.opts is now considered "legacy"; please prefer RC file or package.json over mocha.opts.

🎉 Enhancements

Enhancements introduced in #3556:

  • Mocha now supports "RC" files in JS, JSON, YAML, or package.json-based (using mocha property) format

    • .mocharc.js, .mocharc.json, .mocharc.yaml or .mocharc.yml are valid "rc" file names and will be automatically loaded
    • Use --config /path/to/rc/file to specify an explicit path
    • Use --package /path/to/package.json to specify an explicit package.json to read the mocha prop from
    • Use --no-config or --no-package to completely disable loading of configuration via RC file and package.json, respectively
    • Configurations are merged as applicable using the priority list:
      1. Command-line arguments
      2. RC file
      3. package.json
      4. mocha.opts
      5. Mocha's own defaults
    • Check out these example config files
  • Node/V8 flag support in mocha executable:

    • Support all allowed node flags as supported by the running version of node (also thanks to @demurgos)
    • Support any V8 flag by prepending --v8- to the flag name
    • All flags are also supported via config files, package.json properties, or mocha.opts
    • Debug-related flags (e.g., --inspect) now imply --no-timeouts
    • Use of e.g., --debug will automatically invoke --inspect if supported by running version of node
  • Support negation of any Mocha-specific command-line flag by prepending --no- to the flag name

  • Interfaces now have descriptions when listed using --interfaces flag

  • Mocha constructor supports all options

  • --extension is now an alias for --watch-extensions and affects non-watch-mode test runs as well. For example, to run only test/*.coffee (not test/*.js), you can do mocha --require coffee-script/register --extensions coffee.

  • #3552: tap reporter is now TAP13-capable (@plroebuck & @mollstam)

  • #3535: Mocha's version can now be queried programmatically via public property Mocha.prototype.version (@plroebuck)

  • #3428: xunit reporter shows diffs (@mlucool)

  • #2529: Runner now emits a retry event when tests are retried (reporters can listen for this) (@catdad)

  • #2962, #3111: In-browser notification support; warn about missing prereqs when --growl supplied (@plroebuck)

🐛 Fixes

📖 Documentation

🔩 Other

  • #3557: Use ms userland module instead of hand-rolled solution (@gizemkeser)
  • Many CI fixes and other refactor...
Read more

v5.2.0

18 May 23:37
5bd33a0
Compare
Choose a tag to compare

5.2.0 / 2018-05-18

🎉 Enhancements

🐛 Fixes

📖 Documentation

🔩 Other

v5.1.1

18 Apr 17:29
e0bc1c1
Compare
Choose a tag to compare

5.1.1 / 2018-04-18

🐛 Fixes

v5.1.0

12 Apr 22:17
40d9ea3
Compare
Choose a tag to compare

5.1.0 / 2018-04-12

🎉 Enhancements

🐛 Fixes

📖 Documentation

🔩 Other

v5.0.5

23 Mar 01:36
c11e1e2
Compare
Choose a tag to compare

5.0.5 / 2018-03-22

Welcome @outsideris to the team!

🐛 Fixes

📖 Documentation

🔩 Other

v5.0.4

07 Mar 17:37
851ad29
Compare
Choose a tag to compare

5.0.4 / 2018-03-07

🐛 Fixes

  • #3265: Fixes regression in "watch" functionality introduced in v5.0.2 (@outsideris)

v5.0.3

07 Mar 06:10
da6e5c9
Compare
Choose a tag to compare

5.0.3 / 2018-03-06

This patch features a fix to address a potential "low severity" ReDoS vulnerability in the diff package (a dependency of Mocha).

🔒 Security Fixes

🔩 Other

v5.0.2

06 Mar 01:55
f2ee53c
Compare
Choose a tag to compare

5.0.2 / 2018-03-05

This release fixes a class of tests which report as false positives. Certain tests will now break, though they would have previously been reported as passing. Details below. Sorry for the inconvenience!

🐛 Fixes

  • #3226: Do not swallow errors that are thrown asynchronously from passing tests (@boneskull). Example:

    it('should actually fail, sorry!', function (done) {
      // passing assertion
      assert(true === true);
    
      // test complete & is marked as passing
      done();
    
      // ...but something evil lurks within
      setTimeout(() => {
        throw new Error('chaos!');
      }, 100);
    });

    Previously to this version, Mocha would have silently swallowed the chaos! exception, and you wouldn't know. Well, now you know. Mocha cannot recover from this gracefully, so it will exit with a nonzero code.

    Maintainers of external reporters: If a test of this class is encountered, the Runner instance will emit the end event twice; you may need to change your reporter to use runner.once('end') intead of runner.on('end').

  • #3093: Fix stack trace reformatting problem (@outsideris)

🔩 Other

v5.0.1

08 Feb 07:21
09ce746
Compare
Choose a tag to compare

5.0.1 / 2018-02-07

...your garden-variety patch release.

Special thanks to Wallaby.js for their continued support! ❤️

🐛 Fixes

📖 Documentation

🔩 Other

v5.0.0

18 Jan 00:57
cc4a818
Compare
Choose a tag to compare

5.0.0 / 2018-01-17

Mocha starts off 2018 right by again dropping support for unmaintained rubbish.

Welcome @vkarpov15 to the team!

💥 Breaking Changes

  • #3148: Drop support for IE9 and IE10 (@Bamieh)
    Practically speaking, only code which consumes (through bundling or otherwise) the userland buffer module should be affected. However, Mocha will no longer test against these browsers, nor apply fixes for them.

🎉 Enhancements

🐛 Fixes

😎 Developer Experience

📖 Documentation

🔩 Other