mochajs/mocha
### [`v8.2.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#820--2020-10-16)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.3...v8.2.0)
The major feature added in v8.2.0 is addition of support for [_global fixtures_](https://mochajs.org/#global-fixtures).
While Mocha has always had the ability to run setup and teardown via a hook (e.g., a `before()` at the top level of a test file) when running tests in serial, Mocha v8.0.0 added support for parallel runs. Parallel runs are _incompatible_ with this strategy; e.g., a top-level `before()` would only run for the file in which it was defined.
With [global fixtures](https://mochajs.org/#global-fixtures), Mocha can now perform user-defined setup and teardown _regardless_ of mode, and these fixtures are guaranteed to run _once and only once_. This holds for parallel mode, serial mode, and even "watch" mode (the teardown will run once you hit Ctrl-C, just before Mocha finally exits). Tasks such as starting and stopping servers are well-suited to global fixtures, but not sharing resources--global fixtures do _not_ share context with your test files (but they do share context with each other).
Here's a short example of usage:
```js
// fixtures.js
// can be async or not
exports.mochaGlobalSetup = async function() {
this.server = await startSomeServer({port: process.env.TEST_PORT});
console.log(`server running on port ${this.server.port}`);
};
exports.mochaGlobalTeardown = async function() {
// the context (`this`) is shared, but not with the test files
await this.server.stop();
console.log(`server on port ${this.server.port} stopped`);
};
// this file can contain root hook plugins as well!
// exports.mochaHooks = { ... }
```
Fixtures are loaded with `--require`, e.g., `mocha --require fixtures.js`.
For detailed information, please see the [documentation](https://mochajs.org/#global-fixtures) and this handy-dandy [flowchart](https://mochajs.org/#test-fixture-decision-tree-wizard-thing) to help understand the differences between hooks, root hook plugins, and global fixtures (and when you should use each).
#### :tada: Enhancements
- [#4308](https://togithub.com/mochajs/mocha/issues/4308): Support run-once [global setup & teardown fixtures](https://mochajs.org/#global-fixtures) ([**@boneskull**](https://togithub.com/boneskull))
- [#4442](https://togithub.com/mochajs/mocha/issues/4442): Multi-part extensions (e.g., `test.js`) now usable with `--extension` option ([**@jordanstephens**](https://togithub.com/jordanstephens))
- [#4472](https://togithub.com/mochajs/mocha/issues/4472): Leading dots (e.g., `.js`, `.test.js`) now usable with `--extension` option ([**@boneskull**](https://togithub.com/boneskull))
- [#4434](https://togithub.com/mochajs/mocha/issues/4434): Output of `json` reporter now contains `speed` ("fast"/"medium"/"slow") property ([**@wwhurin**](https://togithub.com/wwhurin))
- [#4464](https://togithub.com/mochajs/mocha/issues/4464): Errors thrown by serializer in parallel mode now have error codes ([**@evaline-ju**](https://togithub.com/evaline-ju))
_For implementors of custom reporters:_
- [#4409](https://togithub.com/mochajs/mocha/issues/4409): Parallel mode and custom reporter improvements ([**@boneskull**](https://togithub.com/boneskull)):
- Support custom worker-process-only reporters (`Runner.prototype.workerReporter()`); reporters should subclass `ParallelBufferedReporter` in `mocha/lib/nodejs/reporters/parallel-buffered`
- Allow opt-in of object reference matching for "sufficiently advanced" custom reporters (`Runner.prototype.linkPartialObjects()`); use if strict object equality is needed when consuming `Runner` event data
- Enable detection of parallel mode (`Runner.prototype.isParallelMode()`)
#### :bug: Fixes
- [#4476](https://togithub.com/mochajs/mocha/issues/4476): Workaround for profoundly bizarre issue affecting `npm` v6.x causing some of Mocha's deps to be installed when `mocha` is present in a package's `devDependencies` and `npm install --production` is run the package's working copy ([**@boneskull**](https://togithub.com/boneskull))
- [#4465](https://togithub.com/mochajs/mocha/issues/4465): Worker processes guaranteed (as opposed to "very likely") to exit before Mocha does; fixes a problem when using `nyc` with Mocha in parallel mode ([**@boneskull**](https://togithub.com/boneskull))
- [#4419](https://togithub.com/mochajs/mocha/issues/4419): Restore `lookupFiles()` in `mocha/lib/utils`, which was broken/missing in Mocha v8.1.0; it now prints a deprecation warning (use `const {lookupFiles} = require('mocha/lib/cli')` instead) ([**@boneskull**](https://togithub.com/boneskull))
Thanks to [**@AviVahl**](https://togithub.com/AviVahl), [**@donghoon-song**](https://togithub.com/donghoon-song), [**@ValeriaVG**](https://togithub.com/ValeriaVG), [**@znarf**](https://togithub.com/znarf), [**@sujin-park**](https://togithub.com/sujin-park), and [**@majecty**](https://togithub.com/majecty) for other helpful contributions!
### [`v8.1.3`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#813--2020-08-28)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.2...v8.1.3)
#### :bug: Fixes
- [#4425](https://togithub.com/mochajs/mocha/issues/4425): Restore `Mocha.utils.lookupFiles()` and Webpack compatibility (both broken since v8.1.0); `Mocha.utils.lookupFiles()` is now **deprecated** and will be removed in the next major revision of Mocha; use `require('mocha/lib/cli').lookupFiles` instead ([**@boneskull**](https://togithub.com/boneskull))
### [`v8.1.2`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#812--2020-08-25)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.1...v8.1.2)
#### :bug: Fixes
- [#4418](https://togithub.com/mochajs/mocha/issues/4418): Fix command-line flag incompatibility in forthcoming Node.js v14.9.0 ([**@boneskull**](https://togithub.com/boneskull))
- [#4401](https://togithub.com/mochajs/mocha/issues/4401): Fix missing global variable in browser ([**@irrationnelle**](https://togithub.com/irrationnelle))
#### :lock: Security Fixes
- [#4396](https://togithub.com/mochajs/mocha/issues/4396): Update many dependencies ([**@GChuf**](https://togithub.com/GChuf))
#### :book: Documentation
- Various fixes by [**@sujin-park**](https://togithub.com/sujin-park), [**@wwhurin**](https://togithub.com/wwhurin) & [**@Donghoon759**](https://togithub.com/Donghoon759)
### [`v8.1.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#811--2020-08-04)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.0...v8.1.1)
#### :bug: Fixes
- [#4394](https://togithub.com/mochajs/mocha/issues/4394): Fix regression wherein certain reporters did not correctly detect terminal width ([**@boneskull**](https://togithub.com/boneskull))
### [`v8.1.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#810--2020-07-30)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.1...v8.1.0)
In this release, Mocha now builds its browser bundle with Rollup and Babel, which will provide the project's codebase more flexibility and consistency.
While we've been diligent about backwards compatibility, it's _possible_ consumers of the browser bundle will encounter differences (other than an increase in the bundle size). If you _do_ encounter an issue with the build, please [report it here](https://togithub.com/mochajs/mocha/issues/new?labels=unconfirmed-bug&template=bug_report.md&title=).
This release **does not** drop support for IE11.
Other community contributions came from [**@Devjeel**](https://togithub.com/Devjeel), [**@Harsha509**](https://togithub.com/Harsha509) and [**@sharath2106**](https://togithub.com/sharath2106). _Thank you_ to everyone who contributed to this release!
> Do you read Korean? See [this guide to running parallel tests in Mocha](https://blog.outsider.ne.kr/1489), translated by our maintainer, [**@outsideris**](https://togithub.com/outsideris).
>
> #### :tada: Enhancements
- [#4287](https://togithub.com/mochajs/mocha/issues/4287): Use background colors with inline diffs for better visual distinction ([**@michael-brade**](https://togithub.com/michael-brade))
#### :bug: Fixes
- [#4328](https://togithub.com/mochajs/mocha/issues/4328): Fix "watch" mode when Mocha run in parallel ([**@boneskull**](https://togithub.com/boneskull))
- [#4382](https://togithub.com/mochajs/mocha/issues/4382): Fix root hook execution in "watch" mode ([**@indieisaconcept**](https://togithub.com/indieisaconcept))
- [#4383](https://togithub.com/mochajs/mocha/issues/4383): Consistent auto-generated hook titles ([**@cspotcode**](https://togithub.com/cspotcode))
- [#4359](https://togithub.com/mochajs/mocha/issues/4359): Better errors when running `mocha init` ([**@boneskull**](https://togithub.com/boneskull))
- [#4341](https://togithub.com/mochajs/mocha/issues/4341): Fix weirdness when using `delay` option in browser ([**@craigtaub**](https://togithub.com/craigtaub))
#### :lock: Security Fixes
- [#4378](https://togithub.com/mochajs/mocha/issues/4378), [#4333](https://togithub.com/mochajs/mocha/issues/4333): Update [javascript-serialize](https://npm.im/javascript-serialize) ([**@martinoppitz**](https://togithub.com/martinoppitz), [**@wnghdcjfe**](https://togithub.com/wnghdcjfe))
- [#4354](https://togithub.com/mochajs/mocha/issues/4354): Update [yargs-unparser](https://npm.im/yargs-unparser) ([**@martinoppitz**](https://togithub.com/martinoppitz))
#### :book: Documentation & Website
- [#4173](https://togithub.com/mochajs/mocha/issues/4173): Document how to use `--enable-source-maps` with Mocha ([**@bcoe**](https://togithub.com/bcoe))
- [#4343](https://togithub.com/mochajs/mocha/issues/4343): Clean up some API docs ([**@craigtaub**](https://togithub.com/craigtaub))
- [#4318](https://togithub.com/mochajs/mocha/issues/4318): Sponsor images are now self-hosted ([**@Munter**](https://togithub.com/Munter))
#### :nut_and_bolt: Other
- [#4293](https://togithub.com/mochajs/mocha/issues/4293): Use Rollup and Babel in build pipeline; add source map to published files ([**@Munter**](https://togithub.com/Munter))
### [`v8.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#801--2020-06-10)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.0...v8.0.1)
The obligatory patch after a major.
#### :bug: Fixes
- [#4328](https://togithub.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@boneskull**](https://togithub.com/boneskull))
### [`v8.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#800--2020-06-10)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.2.0...v8.0.0)
In this major release, Mocha adds the ability to _run tests in parallel_. Better late than never! Please note the **breaking changes** detailed below.
Let's welcome [**@giltayar**](https://togithub.com/giltayar) and [**@nicojs**](https://togithub.com/nicojs) to the maintenance team!
#### :boom: Breaking Changes
- [#4164](https://togithub.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.12.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@UlisesGascon**](https://togithub.com/UlisesGascon))
- [#4175](https://togithub.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@juergba**](https://togithub.com/juergba))
:sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs).
- [#4260](https://togithub.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@craigtaub**](https://togithub.com/craigtaub))
:sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`.
- [#4315](https://togithub.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@juergba**](https://togithub.com/juergba))
:sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`).
- [#4309](https://togithub.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@juergba**](https://togithub.com/juergba))
- [#4282](https://togithub.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@arvidOtt**](https://togithub.com/arvidOtt))
- [#4223](https://togithub.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@juergba**](https://togithub.com/juergba))
- [#4178](https://togithub.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@wnghdcjfe**](https://togithub.com/wnghdcjfe)):
- `Mocha.prototype.ignoreLeaks()`
- `Mocha.prototype.useColors()`
- `Mocha.prototype.useInlineDiffs()`
- `Mocha.prototype.hideDiff()`
#### :tada: Enhancements
- [#4245](https://togithub.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@boneskull**](https://togithub.com/boneskull))
:exclamation: See also [#4244](https://togithub.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- _root hooks must be defined via Root Hook Plugins to work in parallel mode_
- [#4304](https://togithub.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@JacobLey**](https://togithub.com/JacobLey))
- [#4299](https://togithub.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- _use at your own risk!_ ([**@giltayar**](https://togithub.com/giltayar))
#### :book: Documentation
- [#4246](https://togithub.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@boneskull**](https://togithub.com/boneskull))
#### :nut_and_bolt: Other
- [#4200](https://togithub.com/mochajs/mocha/issues/4200): Drop mkdirp and replace it with fs.mkdirSync ([**@HyunSangHan**](https://togithub.com/HyunSangHan))
#### :bug: Fixes
(All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)
### [`v7.2.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#720--2020-05-22)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.1.2...v7.2.0)
#### :tada: Enhancements
- [#4234](https://togithub.com/mochajs/mocha/issues/4234): Add ability to run tests in a mocha instance multiple times ([**@nicojs**](https://togithub.com/nicojs))
- [#4219](https://togithub.com/mochajs/mocha/issues/4219): Exposing filename in JSON, doc, and json-stream reporters ([**@Daniel0113**](https://togithub.com/Daniel0113))
- [#4244](https://togithub.com/mochajs/mocha/issues/4244): Add Root Hook Plugins ([**@boneskull**](https://togithub.com/boneskull))
#### :bug: Fixes
- [#4258](https://togithub.com/mochajs/mocha/issues/4258): Fix missing dot in name of configuration file ([**@sonicdoe**](https://togithub.com/sonicdoe))
- [#4194](https://togithub.com/mochajs/mocha/issues/4194): Check if module.paths really exists ([**@ematipico**](https://togithub.com/ematipico))
- [#4256](https://togithub.com/mochajs/mocha/issues/4256): `--forbid-only` does not recognize `it.only` when `before` crashes ([**@arvidOtt**](https://togithub.com/arvidOtt))
- [#4152](https://togithub.com/mochajs/mocha/issues/4152): Bug with multiple async done() calls ([**@boneskull**](https://togithub.com/boneskull))
- [#4275](https://togithub.com/mochajs/mocha/issues/4275): Improper warnings for invalid reporters ([**@boneskull**](https://togithub.com/boneskull))
- [#4288](https://togithub.com/mochajs/mocha/issues/4288): Broken hook.spec.js test for IE11 ([**@boneskull**](https://togithub.com/boneskull))
#### :book: Documentation
- [#4081](https://togithub.com/mochajs/mocha/issues/4081): Insufficient white space for API docs in view on mobile ([**@HyunSangHan**](https://togithub.com/HyunSangHan))
- [#4255](https://togithub.com/mochajs/mocha/issues/4255): Update mocha-docdash for UI fixes on API docs ([**@craigtaub**](https://togithub.com/craigtaub))
- [#4235](https://togithub.com/mochajs/mocha/issues/4235): Enable emoji on website; enable normal ul elements ([**@boneskull**](https://togithub.com/boneskull))
- [#4272](https://togithub.com/mochajs/mocha/issues/4272): Fetch sponsors at build time, show ALL non-skeevy sponsors ([**@boneskull**](https://togithub.com/boneskull))
#### :nut_and_bolt: Other
- [#4249](https://togithub.com/mochajs/mocha/issues/4249): Refactoring improving encapsulation ([**@arvidOtt**](https://togithub.com/arvidOtt))
- [#4242](https://togithub.com/mochajs/mocha/issues/4242): CI add job names, add Node.js v14 to matrix ([**@boneskull**](https://togithub.com/boneskull))
- [#4237](https://togithub.com/mochajs/mocha/issues/4237): Refactor validatePlugins to throw coded errors ([**@boneskull**](https://togithub.com/boneskull))
- [#4236](https://togithub.com/mochajs/mocha/issues/4236): Better debug output ([**@boneskull**](https://togithub.com/boneskull))
### [`v7.1.2`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#712--2020-04-26)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.1.1...v7.1.2)
#### :nut_and_bolt: Other
- [#4251](https://togithub.com/mochajs/mocha/issues/4251): Prevent karma-mocha from stalling ([**@juergba**](https://togithub.com/juergba))
- [#4222](https://togithub.com/mochajs/mocha/issues/4222): Update dependency mkdirp to v0.5.5 ([**@outsideris**](https://togithub.com/outsideris))
#### :book: Documentation
- [#4208](https://togithub.com/mochajs/mocha/issues/4208): Add Wallaby logo to site ([**@boneskull**](https://togithub.com/boneskull))
### [`v7.1.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#711--2020-03-18)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.1.0...v7.1.1)
#### :lock: Security Fixes
- [#4204](https://togithub.com/mochajs/mocha/issues/4204): Update dependencies mkdirp, yargs-parser and yargs ([**@juergba**](https://togithub.com/juergba))
#### :bug: Fixes
- [#3660](https://togithub.com/mochajs/mocha/issues/3660): Fix `runner` listening to `start` and `end` events ([**@juergba**](https://togithub.com/juergba))
#### :book: Documentation
- [#4190](https://togithub.com/mochajs/mocha/issues/4190): Show Netlify badge on footer ([**@outsideris**](https://togithub.com/outsideris))
### [`v7.1.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#710--2020-02-26)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.0.1...v7.1.0)
#### :tada: Enhancements
[#4038](https://togithub.com/mochajs/mocha/issues/4038): Add Node.js native ESM support ([**@giltayar**](https://togithub.com/giltayar))
Mocha supports writing your test files as ES modules:
- Node.js only v12.11.0 and above
- Node.js below v13.2.0, you must set `--experimental-modules` option
- current limitations: please check our [documentation](https://mochajs.org/#nodejs-native-esm-support)
- for programmatic usage: see [API: loadFilesAsync()](https://mochajs.org/api/mocha#loadFilesAsync)
**Note:** Node.JS native [ECMAScript Modules](https://nodejs.org/api/esm.html) implementation has status: **Stability: 1 - Experimental**
#### :bug: Fixes
- [#4181](https://togithub.com/mochajs/mocha/issues/4181): Programmatic API cannot access retried test objects ([**@juergba**](https://togithub.com/juergba))
- [#4174](https://togithub.com/mochajs/mocha/issues/4174): Browser: fix `allowUncaught` option ([**@juergba**](https://togithub.com/juergba))
#### :book: Documentation
- [#4058](https://togithub.com/mochajs/mocha/issues/4058): Manage author list in AUTHORS instead of `package.json` ([**@outsideris**](https://togithub.com/outsideris))
#### :nut_and_bolt: Other
- [#4138](https://togithub.com/mochajs/mocha/issues/4138): Upgrade ESLint v6.8 ([**@kaicataldo**](https://togithub.com/kaicataldo))
### [`v7.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#701--2020-01-25)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.0.0...v7.0.1)
#### :bug: Fixes
- [#4165](https://togithub.com/mochajs/mocha/issues/4165): Fix exception when skipping tests programmatically ([**@juergba**](https://togithub.com/juergba))
- [#4153](https://togithub.com/mochajs/mocha/issues/4153): Restore backwards compatibility for `reporterOptions` ([**@holm**](https://togithub.com/holm))
- [#4150](https://togithub.com/mochajs/mocha/issues/4150): Fix recovery of an open test upon uncaught exception ([**@juergba**](https://togithub.com/juergba))
- [#4147](https://togithub.com/mochajs/mocha/issues/4147): Fix regression of leaking uncaught exception handler ([**@juergba**](https://togithub.com/juergba))
#### :book: Documentation
- [#4146](https://togithub.com/mochajs/mocha/issues/4146): Update copyright & trademark notices per OJSF ([**@boneskull**](https://togithub.com/boneskull))
- [#4140](https://togithub.com/mochajs/mocha/issues/4140): Fix broken links ([**@KyoungWan**](https://togithub.com/KyoungWan))
#### :nut_and_bolt: Other
- [#4133](https://togithub.com/mochajs/mocha/issues/4133): Print more descriptive error message ([**@Zirak**](https://togithub.com/Zirak))
### [`v7.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#700--2020-01-05)
[Compare Source](https://togithub.com/mochajs/mocha/compare/v6.2.3...v7.0.0)
#### :boom: Breaking Changes
- [#3885](https://togithub.com/mochajs/mocha/issues/3885): **Drop Node.js v6.x support** ([**@mojosoeun**](https://togithub.com/mojosoeun))
- [#3890](https://togithub.com/mochajs/mocha/issues/3890): Remove Node.js debug-related flags `--debug`/`--debug-brk` and deprecate `debug` argument ([**@juergba**](https://togithub.com/juergba))
- [#3962](https://togithub.com/mochajs/mocha/issues/3962): Changes to command-line options ([**@ParkSB**](https://togithub.com/ParkSB)):
- `--list-interfaces` replaces `--interfaces`
- `--list-reporters` replaces `--reporters`
- Hook pattern of `this.skip()` ([**@juergba**](https://togithub.com/juergba)):
- [#3859](https://togithub.com/mochajs/mocha/issues/3859): When conditionally skipping in a `it` test, related `afterEach` hooks are now executed
- [#3741](https://togithub.com/mochajs/mocha/issues/3741): When conditionally skipping in a `beforeEach` hook, subsequent inner `beforeEach` hooks are now skipped and related `afterEach` hooks are executed
- [#4136](https://togithub.com/mochajs/mocha/issues/4136): Disallow `this.skip()` within `after` hooks
- [#3967](https://togithub.com/mochajs/mocha/issues/3967): Remove deprecated `getOptions()` and `lib/cli/options.js` ([**@juergba**](https://togithub.com/juergba))
- [#4083](https://togithub.com/mochajs/mocha/issues/4083): Uncaught exception in `pending` test: don't swallow, but retrospectively fail the test for correct exit code ([**@juergba**](https://togithub.com/juergba))
- [#4004](https://togithub.com/mochajs/mocha/issues/4004): Align `Mocha` constructor's option names with command-line options ([**@juergba**](https://togithub.com/juergba))
#### :tada: Enhancements
- [#3980](https://togithub.com/mochajs/mocha/issues/3980): Refactor and improve `--watch` mode with chokidar ([**@geigerzaehler**](https://togithub.com/geigerzaehler)):
- adds command-line options `--watch-files` and `--watch-ignore`
- removes `--watch-extensions`
- [#3979](https://togithub.com/mochajs/mocha/issues/3979): Type "rs\\n" to restart tests ([**@broofa**](https://togithub.com/broofa))
#### :fax: Deprecations
These are _soft_-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:
- [#3968](https://togithub.com/mochajs/mocha/issues/3968): Deprecate legacy configuration via `mocha.opts` ([**@juergba**](https://togithub.com/juergba))
#### :bug: Fixes
- [#4125](https://togithub.com/mochajs/mocha/issues/4125): Fix timeout handling with `--inspect-brk`/`--inspect` ([**@juergba**](https://togithub.com/juergba))
- [#4070](https://togithub.com/mochajs/mocha/issues/4070): `Mocha` constructor: improve browser setup ([**@juergba**](https://togithub.com/juergba))
- [#4068](https://togithub.com/mochajs/mocha/issues/4068): XUnit reporter should handle exceptions during diff generation ([**@rgroothuijsen**](https://togithub.com/rgroothuijsen))
- [#4030](https://togithub.com/mochajs/mocha/issues/4030): Fix `--allow-uncaught` with `this.skip()` ([**@juergba**](https://togithub.com/juergba))
#### :mag: Coverage
- [#4109](https://togithub.com/mochajs/mocha/issues/4109): Add Node.js v13.x to CI test matrix ([**@juergba**](https://togithub.com/juergba))
#### :book: Documentation
- [#4129](https://togithub.com/mochajs/mocha/issues/4129): Fix broken links ([**@SaeromB**](https://togithub.com/SaeromB))
- [#4127](https://togithub.com/mochajs/mocha/issues/4127): Add reporter alias names to docs ([**@khg0712**](https://togithub.com/khg0712))
- [#4101](https://togithub.com/mochajs/mocha/issues/4101): Clarify invalid usage of `done()` ([**@jgehrcke**](https://togithub.com/jgehrcke))
- [#4092](https://togithub.com/mochajs/mocha/issues/4092): Replace `:coffee:` with emoji ☕️ ([**@pzrq**](https://togithub.com/pzrq))
- [#4088](https://togithub.com/mochajs/mocha/issues/4088): Initial draft of project charter ([**@boneskull**](https://togithub.com/boneskull))
- [#4066](https://togithub.com/mochajs/mocha/issues/4066): Change `sh` to `bash` for code block in docs/index.md ([**@HyunSangHan**](https://togithub.com/HyunSangHan))
- [#4045](https://togithub.com/mochajs/mocha/issues/4045): Update README.md concerning GraphicsMagick installation ([**@HyunSangHan**](https://togithub.com/HyunSangHan))
- [#3988](https://togithub.com/mochajs/mocha/issues/3988): Fix sponsors background color for readability ([**@outsideris**](https://togithub.com/outsideris))
#### :nut_and_bolt: Other
- [#4118](https://togithub.com/mochajs/mocha/issues/4118): Update node-environment-flags to 1.0.6 ([**@kylef**](https://togithub.com/kylef))
- [#4097](https://togithub.com/mochajs/mocha/issues/4097): Add GH Funding Metadata ([**@SheetJSDev**](https://togithub.com/SheetJSDev))
- [#4089](https://togithub.com/mochajs/mocha/issues/4089): Add funding information to `package.json` ([**@Munter**](https://togithub.com/Munter))
- [#4077](https://togithub.com/mochajs/mocha/issues/4077): Improve integration tests ([**@soobing**](https://togithub.com/soobing))
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
^6.2.3
->^8.2.0
^5.2.7
->^8.0.3
Release Notes
mochajs/mocha
### [`v8.2.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#820--2020-10-16) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.3...v8.2.0) The major feature added in v8.2.0 is addition of support for [_global fixtures_](https://mochajs.org/#global-fixtures). While Mocha has always had the ability to run setup and teardown via a hook (e.g., a `before()` at the top level of a test file) when running tests in serial, Mocha v8.0.0 added support for parallel runs. Parallel runs are _incompatible_ with this strategy; e.g., a top-level `before()` would only run for the file in which it was defined. With [global fixtures](https://mochajs.org/#global-fixtures), Mocha can now perform user-defined setup and teardown _regardless_ of mode, and these fixtures are guaranteed to run _once and only once_. This holds for parallel mode, serial mode, and even "watch" mode (the teardown will run once you hit Ctrl-C, just before Mocha finally exits). Tasks such as starting and stopping servers are well-suited to global fixtures, but not sharing resources--global fixtures do _not_ share context with your test files (but they do share context with each other). Here's a short example of usage: ```js // fixtures.js // can be async or not exports.mochaGlobalSetup = async function() { this.server = await startSomeServer({port: process.env.TEST_PORT}); console.log(`server running on port ${this.server.port}`); }; exports.mochaGlobalTeardown = async function() { // the context (`this`) is shared, but not with the test files await this.server.stop(); console.log(`server on port ${this.server.port} stopped`); }; // this file can contain root hook plugins as well! // exports.mochaHooks = { ... } ``` Fixtures are loaded with `--require`, e.g., `mocha --require fixtures.js`. For detailed information, please see the [documentation](https://mochajs.org/#global-fixtures) and this handy-dandy [flowchart](https://mochajs.org/#test-fixture-decision-tree-wizard-thing) to help understand the differences between hooks, root hook plugins, and global fixtures (and when you should use each). #### :tada: Enhancements - [#4308](https://togithub.com/mochajs/mocha/issues/4308): Support run-once [global setup & teardown fixtures](https://mochajs.org/#global-fixtures) ([**@boneskull**](https://togithub.com/boneskull)) - [#4442](https://togithub.com/mochajs/mocha/issues/4442): Multi-part extensions (e.g., `test.js`) now usable with `--extension` option ([**@jordanstephens**](https://togithub.com/jordanstephens)) - [#4472](https://togithub.com/mochajs/mocha/issues/4472): Leading dots (e.g., `.js`, `.test.js`) now usable with `--extension` option ([**@boneskull**](https://togithub.com/boneskull)) - [#4434](https://togithub.com/mochajs/mocha/issues/4434): Output of `json` reporter now contains `speed` ("fast"/"medium"/"slow") property ([**@wwhurin**](https://togithub.com/wwhurin)) - [#4464](https://togithub.com/mochajs/mocha/issues/4464): Errors thrown by serializer in parallel mode now have error codes ([**@evaline-ju**](https://togithub.com/evaline-ju)) _For implementors of custom reporters:_ - [#4409](https://togithub.com/mochajs/mocha/issues/4409): Parallel mode and custom reporter improvements ([**@boneskull**](https://togithub.com/boneskull)): - Support custom worker-process-only reporters (`Runner.prototype.workerReporter()`); reporters should subclass `ParallelBufferedReporter` in `mocha/lib/nodejs/reporters/parallel-buffered` - Allow opt-in of object reference matching for "sufficiently advanced" custom reporters (`Runner.prototype.linkPartialObjects()`); use if strict object equality is needed when consuming `Runner` event data - Enable detection of parallel mode (`Runner.prototype.isParallelMode()`) #### :bug: Fixes - [#4476](https://togithub.com/mochajs/mocha/issues/4476): Workaround for profoundly bizarre issue affecting `npm` v6.x causing some of Mocha's deps to be installed when `mocha` is present in a package's `devDependencies` and `npm install --production` is run the package's working copy ([**@boneskull**](https://togithub.com/boneskull)) - [#4465](https://togithub.com/mochajs/mocha/issues/4465): Worker processes guaranteed (as opposed to "very likely") to exit before Mocha does; fixes a problem when using `nyc` with Mocha in parallel mode ([**@boneskull**](https://togithub.com/boneskull)) - [#4419](https://togithub.com/mochajs/mocha/issues/4419): Restore `lookupFiles()` in `mocha/lib/utils`, which was broken/missing in Mocha v8.1.0; it now prints a deprecation warning (use `const {lookupFiles} = require('mocha/lib/cli')` instead) ([**@boneskull**](https://togithub.com/boneskull)) Thanks to [**@AviVahl**](https://togithub.com/AviVahl), [**@donghoon-song**](https://togithub.com/donghoon-song), [**@ValeriaVG**](https://togithub.com/ValeriaVG), [**@znarf**](https://togithub.com/znarf), [**@sujin-park**](https://togithub.com/sujin-park), and [**@majecty**](https://togithub.com/majecty) for other helpful contributions! ### [`v8.1.3`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#813--2020-08-28) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.2...v8.1.3) #### :bug: Fixes - [#4425](https://togithub.com/mochajs/mocha/issues/4425): Restore `Mocha.utils.lookupFiles()` and Webpack compatibility (both broken since v8.1.0); `Mocha.utils.lookupFiles()` is now **deprecated** and will be removed in the next major revision of Mocha; use `require('mocha/lib/cli').lookupFiles` instead ([**@boneskull**](https://togithub.com/boneskull)) ### [`v8.1.2`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#812--2020-08-25) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.1...v8.1.2) #### :bug: Fixes - [#4418](https://togithub.com/mochajs/mocha/issues/4418): Fix command-line flag incompatibility in forthcoming Node.js v14.9.0 ([**@boneskull**](https://togithub.com/boneskull)) - [#4401](https://togithub.com/mochajs/mocha/issues/4401): Fix missing global variable in browser ([**@irrationnelle**](https://togithub.com/irrationnelle)) #### :lock: Security Fixes - [#4396](https://togithub.com/mochajs/mocha/issues/4396): Update many dependencies ([**@GChuf**](https://togithub.com/GChuf)) #### :book: Documentation - Various fixes by [**@sujin-park**](https://togithub.com/sujin-park), [**@wwhurin**](https://togithub.com/wwhurin) & [**@Donghoon759**](https://togithub.com/Donghoon759) ### [`v8.1.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#811--2020-08-04) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.1.0...v8.1.1) #### :bug: Fixes - [#4394](https://togithub.com/mochajs/mocha/issues/4394): Fix regression wherein certain reporters did not correctly detect terminal width ([**@boneskull**](https://togithub.com/boneskull)) ### [`v8.1.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#810--2020-07-30) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.1...v8.1.0) In this release, Mocha now builds its browser bundle with Rollup and Babel, which will provide the project's codebase more flexibility and consistency. While we've been diligent about backwards compatibility, it's _possible_ consumers of the browser bundle will encounter differences (other than an increase in the bundle size). If you _do_ encounter an issue with the build, please [report it here](https://togithub.com/mochajs/mocha/issues/new?labels=unconfirmed-bug&template=bug_report.md&title=). This release **does not** drop support for IE11. Other community contributions came from [**@Devjeel**](https://togithub.com/Devjeel), [**@Harsha509**](https://togithub.com/Harsha509) and [**@sharath2106**](https://togithub.com/sharath2106). _Thank you_ to everyone who contributed to this release! > Do you read Korean? See [this guide to running parallel tests in Mocha](https://blog.outsider.ne.kr/1489), translated by our maintainer, [**@outsideris**](https://togithub.com/outsideris). > > #### :tada: Enhancements - [#4287](https://togithub.com/mochajs/mocha/issues/4287): Use background colors with inline diffs for better visual distinction ([**@michael-brade**](https://togithub.com/michael-brade)) #### :bug: Fixes - [#4328](https://togithub.com/mochajs/mocha/issues/4328): Fix "watch" mode when Mocha run in parallel ([**@boneskull**](https://togithub.com/boneskull)) - [#4382](https://togithub.com/mochajs/mocha/issues/4382): Fix root hook execution in "watch" mode ([**@indieisaconcept**](https://togithub.com/indieisaconcept)) - [#4383](https://togithub.com/mochajs/mocha/issues/4383): Consistent auto-generated hook titles ([**@cspotcode**](https://togithub.com/cspotcode)) - [#4359](https://togithub.com/mochajs/mocha/issues/4359): Better errors when running `mocha init` ([**@boneskull**](https://togithub.com/boneskull)) - [#4341](https://togithub.com/mochajs/mocha/issues/4341): Fix weirdness when using `delay` option in browser ([**@craigtaub**](https://togithub.com/craigtaub)) #### :lock: Security Fixes - [#4378](https://togithub.com/mochajs/mocha/issues/4378), [#4333](https://togithub.com/mochajs/mocha/issues/4333): Update [javascript-serialize](https://npm.im/javascript-serialize) ([**@martinoppitz**](https://togithub.com/martinoppitz), [**@wnghdcjfe**](https://togithub.com/wnghdcjfe)) - [#4354](https://togithub.com/mochajs/mocha/issues/4354): Update [yargs-unparser](https://npm.im/yargs-unparser) ([**@martinoppitz**](https://togithub.com/martinoppitz)) #### :book: Documentation & Website - [#4173](https://togithub.com/mochajs/mocha/issues/4173): Document how to use `--enable-source-maps` with Mocha ([**@bcoe**](https://togithub.com/bcoe)) - [#4343](https://togithub.com/mochajs/mocha/issues/4343): Clean up some API docs ([**@craigtaub**](https://togithub.com/craigtaub)) - [#4318](https://togithub.com/mochajs/mocha/issues/4318): Sponsor images are now self-hosted ([**@Munter**](https://togithub.com/Munter)) #### :nut_and_bolt: Other - [#4293](https://togithub.com/mochajs/mocha/issues/4293): Use Rollup and Babel in build pipeline; add source map to published files ([**@Munter**](https://togithub.com/Munter)) ### [`v8.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#801--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.0...v8.0.1) The obligatory patch after a major. #### :bug: Fixes - [#4328](https://togithub.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@boneskull**](https://togithub.com/boneskull)) ### [`v8.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#800--2020-06-10) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.2.0...v8.0.0) In this major release, Mocha adds the ability to _run tests in parallel_. Better late than never! Please note the **breaking changes** detailed below. Let's welcome [**@giltayar**](https://togithub.com/giltayar) and [**@nicojs**](https://togithub.com/nicojs) to the maintenance team! #### :boom: Breaking Changes - [#4164](https://togithub.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.12.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@UlisesGascon**](https://togithub.com/UlisesGascon)) - [#4175](https://togithub.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs). - [#4260](https://togithub.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@craigtaub**](https://togithub.com/craigtaub)) :sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`. - [#4315](https://togithub.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@juergba**](https://togithub.com/juergba)) :sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`). - [#4309](https://togithub.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@juergba**](https://togithub.com/juergba)) - [#4282](https://togithub.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@arvidOtt**](https://togithub.com/arvidOtt)) - [#4223](https://togithub.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@juergba**](https://togithub.com/juergba)) - [#4178](https://togithub.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@wnghdcjfe**](https://togithub.com/wnghdcjfe)): - `Mocha.prototype.ignoreLeaks()` - `Mocha.prototype.useColors()` - `Mocha.prototype.useInlineDiffs()` - `Mocha.prototype.hideDiff()` #### :tada: Enhancements - [#4245](https://togithub.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@boneskull**](https://togithub.com/boneskull)) :exclamation: See also [#4244](https://togithub.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- _root hooks must be defined via Root Hook Plugins to work in parallel mode_ - [#4304](https://togithub.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@JacobLey**](https://togithub.com/JacobLey)) - [#4299](https://togithub.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- _use at your own risk!_ ([**@giltayar**](https://togithub.com/giltayar)) #### :book: Documentation - [#4246](https://togithub.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@boneskull**](https://togithub.com/boneskull)) #### :nut_and_bolt: Other - [#4200](https://togithub.com/mochajs/mocha/issues/4200): Drop mkdirp and replace it with fs.mkdirSync ([**@HyunSangHan**](https://togithub.com/HyunSangHan)) #### :bug: Fixes (All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above) ### [`v7.2.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#720--2020-05-22) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.1.2...v7.2.0) #### :tada: Enhancements - [#4234](https://togithub.com/mochajs/mocha/issues/4234): Add ability to run tests in a mocha instance multiple times ([**@nicojs**](https://togithub.com/nicojs)) - [#4219](https://togithub.com/mochajs/mocha/issues/4219): Exposing filename in JSON, doc, and json-stream reporters ([**@Daniel0113**](https://togithub.com/Daniel0113)) - [#4244](https://togithub.com/mochajs/mocha/issues/4244): Add Root Hook Plugins ([**@boneskull**](https://togithub.com/boneskull)) #### :bug: Fixes - [#4258](https://togithub.com/mochajs/mocha/issues/4258): Fix missing dot in name of configuration file ([**@sonicdoe**](https://togithub.com/sonicdoe)) - [#4194](https://togithub.com/mochajs/mocha/issues/4194): Check if module.paths really exists ([**@ematipico**](https://togithub.com/ematipico)) - [#4256](https://togithub.com/mochajs/mocha/issues/4256): `--forbid-only` does not recognize `it.only` when `before` crashes ([**@arvidOtt**](https://togithub.com/arvidOtt)) - [#4152](https://togithub.com/mochajs/mocha/issues/4152): Bug with multiple async done() calls ([**@boneskull**](https://togithub.com/boneskull)) - [#4275](https://togithub.com/mochajs/mocha/issues/4275): Improper warnings for invalid reporters ([**@boneskull**](https://togithub.com/boneskull)) - [#4288](https://togithub.com/mochajs/mocha/issues/4288): Broken hook.spec.js test for IE11 ([**@boneskull**](https://togithub.com/boneskull)) #### :book: Documentation - [#4081](https://togithub.com/mochajs/mocha/issues/4081): Insufficient white space for API docs in view on mobile ([**@HyunSangHan**](https://togithub.com/HyunSangHan)) - [#4255](https://togithub.com/mochajs/mocha/issues/4255): Update mocha-docdash for UI fixes on API docs ([**@craigtaub**](https://togithub.com/craigtaub)) - [#4235](https://togithub.com/mochajs/mocha/issues/4235): Enable emoji on website; enable normal ul elements ([**@boneskull**](https://togithub.com/boneskull)) - [#4272](https://togithub.com/mochajs/mocha/issues/4272): Fetch sponsors at build time, show ALL non-skeevy sponsors ([**@boneskull**](https://togithub.com/boneskull)) #### :nut_and_bolt: Other - [#4249](https://togithub.com/mochajs/mocha/issues/4249): Refactoring improving encapsulation ([**@arvidOtt**](https://togithub.com/arvidOtt)) - [#4242](https://togithub.com/mochajs/mocha/issues/4242): CI add job names, add Node.js v14 to matrix ([**@boneskull**](https://togithub.com/boneskull)) - [#4237](https://togithub.com/mochajs/mocha/issues/4237): Refactor validatePlugins to throw coded errors ([**@boneskull**](https://togithub.com/boneskull)) - [#4236](https://togithub.com/mochajs/mocha/issues/4236): Better debug output ([**@boneskull**](https://togithub.com/boneskull)) ### [`v7.1.2`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#712--2020-04-26) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.1.1...v7.1.2) #### :nut_and_bolt: Other - [#4251](https://togithub.com/mochajs/mocha/issues/4251): Prevent karma-mocha from stalling ([**@juergba**](https://togithub.com/juergba)) - [#4222](https://togithub.com/mochajs/mocha/issues/4222): Update dependency mkdirp to v0.5.5 ([**@outsideris**](https://togithub.com/outsideris)) #### :book: Documentation - [#4208](https://togithub.com/mochajs/mocha/issues/4208): Add Wallaby logo to site ([**@boneskull**](https://togithub.com/boneskull)) ### [`v7.1.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#711--2020-03-18) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.1.0...v7.1.1) #### :lock: Security Fixes - [#4204](https://togithub.com/mochajs/mocha/issues/4204): Update dependencies mkdirp, yargs-parser and yargs ([**@juergba**](https://togithub.com/juergba)) #### :bug: Fixes - [#3660](https://togithub.com/mochajs/mocha/issues/3660): Fix `runner` listening to `start` and `end` events ([**@juergba**](https://togithub.com/juergba)) #### :book: Documentation - [#4190](https://togithub.com/mochajs/mocha/issues/4190): Show Netlify badge on footer ([**@outsideris**](https://togithub.com/outsideris)) ### [`v7.1.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#710--2020-02-26) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.0.1...v7.1.0) #### :tada: Enhancements [#4038](https://togithub.com/mochajs/mocha/issues/4038): Add Node.js native ESM support ([**@giltayar**](https://togithub.com/giltayar)) Mocha supports writing your test files as ES modules: - Node.js only v12.11.0 and above - Node.js below v13.2.0, you must set `--experimental-modules` option - current limitations: please check our [documentation](https://mochajs.org/#nodejs-native-esm-support) - for programmatic usage: see [API: loadFilesAsync()](https://mochajs.org/api/mocha#loadFilesAsync) **Note:** Node.JS native [ECMAScript Modules](https://nodejs.org/api/esm.html) implementation has status: **Stability: 1 - Experimental** #### :bug: Fixes - [#4181](https://togithub.com/mochajs/mocha/issues/4181): Programmatic API cannot access retried test objects ([**@juergba**](https://togithub.com/juergba)) - [#4174](https://togithub.com/mochajs/mocha/issues/4174): Browser: fix `allowUncaught` option ([**@juergba**](https://togithub.com/juergba)) #### :book: Documentation - [#4058](https://togithub.com/mochajs/mocha/issues/4058): Manage author list in AUTHORS instead of `package.json` ([**@outsideris**](https://togithub.com/outsideris)) #### :nut_and_bolt: Other - [#4138](https://togithub.com/mochajs/mocha/issues/4138): Upgrade ESLint v6.8 ([**@kaicataldo**](https://togithub.com/kaicataldo)) ### [`v7.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#701--2020-01-25) [Compare Source](https://togithub.com/mochajs/mocha/compare/v7.0.0...v7.0.1) #### :bug: Fixes - [#4165](https://togithub.com/mochajs/mocha/issues/4165): Fix exception when skipping tests programmatically ([**@juergba**](https://togithub.com/juergba)) - [#4153](https://togithub.com/mochajs/mocha/issues/4153): Restore backwards compatibility for `reporterOptions` ([**@holm**](https://togithub.com/holm)) - [#4150](https://togithub.com/mochajs/mocha/issues/4150): Fix recovery of an open test upon uncaught exception ([**@juergba**](https://togithub.com/juergba)) - [#4147](https://togithub.com/mochajs/mocha/issues/4147): Fix regression of leaking uncaught exception handler ([**@juergba**](https://togithub.com/juergba)) #### :book: Documentation - [#4146](https://togithub.com/mochajs/mocha/issues/4146): Update copyright & trademark notices per OJSF ([**@boneskull**](https://togithub.com/boneskull)) - [#4140](https://togithub.com/mochajs/mocha/issues/4140): Fix broken links ([**@KyoungWan**](https://togithub.com/KyoungWan)) #### :nut_and_bolt: Other - [#4133](https://togithub.com/mochajs/mocha/issues/4133): Print more descriptive error message ([**@Zirak**](https://togithub.com/Zirak)) ### [`v7.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#700--2020-01-05) [Compare Source](https://togithub.com/mochajs/mocha/compare/v6.2.3...v7.0.0) #### :boom: Breaking Changes - [#3885](https://togithub.com/mochajs/mocha/issues/3885): **Drop Node.js v6.x support** ([**@mojosoeun**](https://togithub.com/mojosoeun)) - [#3890](https://togithub.com/mochajs/mocha/issues/3890): Remove Node.js debug-related flags `--debug`/`--debug-brk` and deprecate `debug` argument ([**@juergba**](https://togithub.com/juergba)) - [#3962](https://togithub.com/mochajs/mocha/issues/3962): Changes to command-line options ([**@ParkSB**](https://togithub.com/ParkSB)): - `--list-interfaces` replaces `--interfaces` - `--list-reporters` replaces `--reporters` - Hook pattern of `this.skip()` ([**@juergba**](https://togithub.com/juergba)): - [#3859](https://togithub.com/mochajs/mocha/issues/3859): When conditionally skipping in a `it` test, related `afterEach` hooks are now executed - [#3741](https://togithub.com/mochajs/mocha/issues/3741): When conditionally skipping in a `beforeEach` hook, subsequent inner `beforeEach` hooks are now skipped and related `afterEach` hooks are executed - [#4136](https://togithub.com/mochajs/mocha/issues/4136): Disallow `this.skip()` within `after` hooks - [#3967](https://togithub.com/mochajs/mocha/issues/3967): Remove deprecated `getOptions()` and `lib/cli/options.js` ([**@juergba**](https://togithub.com/juergba)) - [#4083](https://togithub.com/mochajs/mocha/issues/4083): Uncaught exception in `pending` test: don't swallow, but retrospectively fail the test for correct exit code ([**@juergba**](https://togithub.com/juergba)) - [#4004](https://togithub.com/mochajs/mocha/issues/4004): Align `Mocha` constructor's option names with command-line options ([**@juergba**](https://togithub.com/juergba)) #### :tada: Enhancements - [#3980](https://togithub.com/mochajs/mocha/issues/3980): Refactor and improve `--watch` mode with chokidar ([**@geigerzaehler**](https://togithub.com/geigerzaehler)): - adds command-line options `--watch-files` and `--watch-ignore` - removes `--watch-extensions` - [#3979](https://togithub.com/mochajs/mocha/issues/3979): Type "rs\\n" to restart tests ([**@broofa**](https://togithub.com/broofa)) #### :fax: Deprecations These are _soft_-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha: - [#3968](https://togithub.com/mochajs/mocha/issues/3968): Deprecate legacy configuration via `mocha.opts` ([**@juergba**](https://togithub.com/juergba)) #### :bug: Fixes - [#4125](https://togithub.com/mochajs/mocha/issues/4125): Fix timeout handling with `--inspect-brk`/`--inspect` ([**@juergba**](https://togithub.com/juergba)) - [#4070](https://togithub.com/mochajs/mocha/issues/4070): `Mocha` constructor: improve browser setup ([**@juergba**](https://togithub.com/juergba)) - [#4068](https://togithub.com/mochajs/mocha/issues/4068): XUnit reporter should handle exceptions during diff generation ([**@rgroothuijsen**](https://togithub.com/rgroothuijsen)) - [#4030](https://togithub.com/mochajs/mocha/issues/4030): Fix `--allow-uncaught` with `this.skip()` ([**@juergba**](https://togithub.com/juergba)) #### :mag: Coverage - [#4109](https://togithub.com/mochajs/mocha/issues/4109): Add Node.js v13.x to CI test matrix ([**@juergba**](https://togithub.com/juergba)) #### :book: Documentation - [#4129](https://togithub.com/mochajs/mocha/issues/4129): Fix broken links ([**@SaeromB**](https://togithub.com/SaeromB)) - [#4127](https://togithub.com/mochajs/mocha/issues/4127): Add reporter alias names to docs ([**@khg0712**](https://togithub.com/khg0712)) - [#4101](https://togithub.com/mochajs/mocha/issues/4101): Clarify invalid usage of `done()` ([**@jgehrcke**](https://togithub.com/jgehrcke)) - [#4092](https://togithub.com/mochajs/mocha/issues/4092): Replace `:coffee:` with emoji ☕️ ([**@pzrq**](https://togithub.com/pzrq)) - [#4088](https://togithub.com/mochajs/mocha/issues/4088): Initial draft of project charter ([**@boneskull**](https://togithub.com/boneskull)) - [#4066](https://togithub.com/mochajs/mocha/issues/4066): Change `sh` to `bash` for code block in docs/index.md ([**@HyunSangHan**](https://togithub.com/HyunSangHan)) - [#4045](https://togithub.com/mochajs/mocha/issues/4045): Update README.md concerning GraphicsMagick installation ([**@HyunSangHan**](https://togithub.com/HyunSangHan)) - [#3988](https://togithub.com/mochajs/mocha/issues/3988): Fix sponsors background color for readability ([**@outsideris**](https://togithub.com/outsideris)) #### :nut_and_bolt: Other - [#4118](https://togithub.com/mochajs/mocha/issues/4118): Update node-environment-flags to 1.0.6 ([**@kylef**](https://togithub.com/kylef)) - [#4097](https://togithub.com/mochajs/mocha/issues/4097): Add GH Funding Metadata ([**@SheetJSDev**](https://togithub.com/SheetJSDev)) - [#4089](https://togithub.com/mochajs/mocha/issues/4089): Add funding information to `package.json` ([**@Munter**](https://togithub.com/Munter)) - [#4077](https://togithub.com/mochajs/mocha/issues/4077): Improve integration tests ([**@soobing**](https://togithub.com/soobing))Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by WhiteSource Renovate. View repository job log here.