UNPKG

125 kBMarkdownView Raw
1# 7.0.0-esm1 / 2020-01-12
2
3**This is an experimental release** based on v7.0.0: `npm i mocha@7.0.0-esm1`
4
5## :tada: Enhancements
6
7[#4038](https://github.com/mochajs/mocha/issues/4038): Add Node.js native ESM support ([**@giltayar**](https://github.com/giltayar))
8
9Enables Mocha to load ECMAScript Modules test files, also valid for `--file` option.
10
11Limitations:
12
13- Node.js only v12.11.0 and above
14- Node.js below v13.2.0, you must set `--experimental-modules` option
15- ESM not (yet) supported for:
16 - `--watch` mode
17 - `--require` option
18 - `--reporter` custom reporters
19 - `--ui` custom interfaces
20 - `mocharc` configuration file
21
22# 7.0.0 / 2020-01-05
23
24## :boom: Breaking Changes
25
26- [#3885](https://github.com/mochajs/mocha/issues/3885): **Drop Node.js v6.x support** ([**@mojosoeun**](https://github.com/mojosoeun))
27- [#3890](https://github.com/mochajs/mocha/issues/3890): Remove Node.js debug-related flags `--debug`/`--debug-brk` and deprecate `debug` argument ([**@juergba**](https://github.com/juergba))
28- [#3962](https://github.com/mochajs/mocha/issues/3962): Changes to command-line options ([**@ParkSB**](https://github.com/ParkSB)):
29 - `--list-interfaces` replaces `--interfaces`
30 - `--list-reporters` replaces `--reporters`
31- Hook pattern of `this.skip()` ([**@juergba**](https://github.com/juergba)):
32 - [#3859](https://github.com/mochajs/mocha/issues/3859): When conditionally skipping in a `it` test, related `afterEach` hooks are now executed
33 - [#3741](https://github.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
34 - [#4136](https://github.com/mochajs/mocha/issues/4136): Disallow `this.skip()` within `after` hooks
35- [#3967](https://github.com/mochajs/mocha/issues/3967): Remove deprecated `getOptions()` and `lib/cli/options.js` ([**@juergba**](https://github.com/juergba))
36- [#4083](https://github.com/mochajs/mocha/issues/4083): Uncaught exception in `pending` test: don't swallow, but retrospectively fail the test for correct exit code ([**@juergba**](https://github.com/juergba))
37- [#4004](https://github.com/mochajs/mocha/issues/4004): Align `Mocha` constructor's option names with command-line options ([**@juergba**](https://github.com/juergba))
38
39## :tada: Enhancements
40
41- [#3980](https://github.com/mochajs/mocha/issues/3980): Refactor and improve `--watch` mode with chokidar ([**@geigerzaehler**](https://github.com/geigerzaehler)):
42 - adds command-line options `--watch-files` and `--watch-ignore`
43 - removes `--watch-extensions`
44- [#3979](https://github.com/mochajs/mocha/issues/3979): Type "rs\\n" to restart tests ([**@broofa**](https://github.com/broofa))
45
46## :fax: Deprecations
47
48These are _soft_-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:
49
50- [#3968](https://github.com/mochajs/mocha/issues/3968): Deprecate legacy configuration via `mocha.opts` ([**@juergba**](https://github.com/juergba))
51
52## :bug: Fixes
53
54- [#4125](https://github.com/mochajs/mocha/issues/4125): Fix timeout handling with `--inspect-brk`/`--inspect` ([**@juergba**](https://github.com/juergba))
55- [#4070](https://github.com/mochajs/mocha/issues/4070): `Mocha` constructor: improve browser setup ([**@juergba**](https://github.com/juergba))
56- [#4068](https://github.com/mochajs/mocha/issues/4068): XUnit reporter should handle exceptions during diff generation ([**@rgroothuijsen**](https://github.com/rgroothuijsen))
57- [#4030](https://github.com/mochajs/mocha/issues/4030): Fix `--allow-uncaught` with `this.skip()` ([**@juergba**](https://github.com/juergba))
58
59## :mag: Coverage
60
61- [#4109](https://github.com/mochajs/mocha/issues/4109): Add Node.js v13.x to CI test matrix ([**@juergba**](https://github.com/juergba))
62
63## :book: Documentation
64
65- [#4129](https://github.com/mochajs/mocha/issues/4129): Fix broken links ([**@SaeromB**](https://github.com/SaeromB))
66- [#4127](https://github.com/mochajs/mocha/issues/4127): Add reporter alias names to docs ([**@khg0712**](https://github.com/khg0712))
67- [#4101](https://github.com/mochajs/mocha/issues/4101): Clarify invalid usage of `done()` ([**@jgehrcke**](https://github.com/jgehrcke))
68- [#4092](https://github.com/mochajs/mocha/issues/4092): Replace `:coffee:` with emoji ☕️ ([**@pzrq**](https://github.com/pzrq))
69- [#4088](https://github.com/mochajs/mocha/issues/4088): Initial draft of project charter ([**@boneskull**](https://github.com/boneskull))
70- [#4066](https://github.com/mochajs/mocha/issues/4066): Change `sh` to `bash` for code block in docs/index.md ([**@HyunSangHan**](https://github.com/HyunSangHan))
71- [#4045](https://github.com/mochajs/mocha/issues/4045): Update README.md concerning GraphicsMagick installation ([**@HyunSangHan**](https://github.com/HyunSangHan))
72- [#3988](https://github.com/mochajs/mocha/issues/3988): Fix sponsors background color for readability ([**@outsideris**](https://github.com/outsideris))
73
74## :nut_and_bolt: Other
75
76- [#4118](https://github.com/mochajs/mocha/issues/4118): Update node-environment-flags to 1.0.6 ([**@kylef**](https://github.com/kylef))
77- [#4097](https://github.com/mochajs/mocha/issues/4097): Add GH Funding Metadata ([**@SheetJSDev**](https://github.com/SheetJSDev))
78- [#4089](https://github.com/mochajs/mocha/issues/4089): Add funding information to `package.json` ([**@Munter**](https://github.com/Munter))
79- [#4077](https://github.com/mochajs/mocha/issues/4077): Improve integration tests ([**@soobing**](https://github.com/soobing))
80
81# 6.2.2 / 2019-10-18
82
83## :bug: Fixes
84
85- [#4025](https://github.com/mochajs/mocha/issues/4025): Fix duplicate `EVENT_RUN_END` events upon uncaught exception ([**@juergba**](https://github.com/juergba))
86- [#4051](https://github.com/mochajs/mocha/issues/4051): Fix "unhide" function in `html` reporter (browser) ([**@pec9399**](https://github.com/pec9399))
87- [#4063](https://github.com/mochajs/mocha/issues/4063): Fix use of [esm](https://npm.im/esm) in Node.js v8.x ([**@boneskull**](https://github.com/boneskull))
88- [#4033](https://github.com/mochajs/mocha/issues/4033): Fix output when multiple async exceptions are thrown ([**@juergba**](https://github.com/juergba))
89
90## :book: Documentation
91
92- [#4046](https://github.com/mochajs/mocha/issues/4046): Site accessibility fixes ([**@Mia-jeong**](https://github.com/Mia-jeong))
93- [#4026](https://github.com/mochajs/mocha/issues/4026): Update docs for custom reporters in browser ([**@Lindsay-Needs-Sleep**](https://github.com/Lindsay-Needs-Sleep))
94- [#3971](https://github.com/mochajs/mocha/issues/3971): Adopt new OpenJS Foundation Code of Conduct ([**@craigtaub**](https://github.com/craigtaub))
95
96# 6.2.1 / 2019-09-29
97
98## :bug: Fixes
99
100- [#3955](https://github.com/mochajs/mocha/issues/3955): tty.getWindowSize is not a function inside a "worker_threads" worker ([**@1999**](https://github.com/1999))
101- [#3970](https://github.com/mochajs/mocha/issues/3970): remove extraGlobals() ([**@juergba**](https://github.com/juergba))
102- [#3984](https://github.com/mochajs/mocha/issues/3984): Update yargs-unparser to v1.6.0 ([**@juergba**](https://github.com/juergba))
103- [#3983](https://github.com/mochajs/mocha/issues/3983): Package 'esm': spawn child-process for correct loading ([**@juergba**](https://github.com/juergba))
104- [#3986](https://github.com/mochajs/mocha/issues/3986): Update yargs to v13.3.0 and yargs-parser to v13.1.1 ([**@juergba**](https://github.com/juergba))
105
106## :book: Documentation
107
108- [#3886](https://github.com/mochajs/mocha/issues/3886): fix styles on mochajs.org ([**@outsideris**](https://github.com/outsideris))
109- [#3966](https://github.com/mochajs/mocha/issues/3966): Remove jsdoc index.html placeholder from eleventy file structure and fix broken link in jsdoc tutorial ([**@Munter**](https://github.com/Munter))
110- [#3765](https://github.com/mochajs/mocha/issues/3765): Add Matomo to website ([**@MarioDiaz98**](https://github.com/MarioDiaz98))
111- [#3947](https://github.com/mochajs/mocha/issues/3947): Clarify effect of .skip() ([**@oliversalzburg**](https://github.com/oliversalzburg))
112
113# 6.2.0 / 2019-07-18
114
115## :tada: Enhancements
116
117- [#3827](https://github.com/mochajs/mocha/issues/3827): Do not fork child-process if no Node flags are present ([**@boneskull**](https://github.com/boneskull))
118- [#3725](https://github.com/mochajs/mocha/issues/3725): Base reporter store ref to console.log, see [mocha/wiki](https://github.com/mochajs/mocha/wiki/HOW-TO:-Correctly-stub-stdout) ([**@craigtaub**](https://github.com/craigtaub))
119
120## :bug: Fixes
121
122- [#3942](https://github.com/mochajs/mocha/issues/3942): Fix "No test files found" Error when file is passed via `--file` ([**@gabegorelick**](https://github.com/gabegorelick))
123- [#3914](https://github.com/mochajs/mocha/issues/3914): Modify Mocha constructor to accept options `global` or `globals` ([**@pascalpp**](https://github.com/pascalpp))
124- [#3894](https://github.com/mochajs/mocha/issues/3894): Fix parsing of config files with `_mocha` binary ([**@juergba**](https://github.com/juergba))
125- [#3834](https://github.com/mochajs/mocha/issues/3834): Fix CLI parsing with default values ([**@boneskull**](https://github.com/boneskull), [**@juergba**](https://github.com/juergba))
126- [#3831](https://github.com/mochajs/mocha/issues/3831): Fix `--timeout`/`--slow` string values and duplicate arguments ([**@boneskull**](https://github.com/boneskull), [**@juergba**](https://github.com/juergba))
127
128## :book: Documentation
129
130- [#3906](https://github.com/mochajs/mocha/issues/3906): Document option to define custom report name for XUnit reporter ([**@pkuczynski**](https://github.com/pkuczynski))
131- [#3889](https://github.com/mochajs/mocha/issues/3889): Adds doc links for mocha-examples ([**@craigtaub**](https://github.com/craigtaub))
132- [#3887](https://github.com/mochajs/mocha/issues/3887): Fix broken links ([**@toyjhlee**](https://github.com/toyjhlee))
133- [#3841](https://github.com/mochajs/mocha/issues/3841): Fix anchors to configuration section ([**@trescube**](https://github.com/trescube))
134
135## :mag: Coverage
136
137- [#3915](https://github.com/mochajs/mocha/issues/3915), [#3929](https://github.com/mochajs/mocha/issues/3929): Increase tests coverage for `--watch` options ([**@geigerzaehler**](https://github.com/geigerzaehler))
138
139## :nut_and_bolt: Other
140
141- [#3953](https://github.com/mochajs/mocha/issues/3953): Collect test files later, prepares improvements to the `--watch` mode behavior ([**@geigerzaehler**](https://github.com/geigerzaehler))
142- [#3939](https://github.com/mochajs/mocha/issues/3939): Upgrade for npm audit ([**@boneskull**](https://github.com/boneskull))
143- [#3930](https://github.com/mochajs/mocha/issues/3930): Extract `runWatch` into separate module ([**@geigerzaehler**](https://github.com/geigerzaehler))
144- [#3922](https://github.com/mochajs/mocha/issues/3922): Add `mocha.min.js` file to stacktrace filter ([**@brian-lagerman**](https://github.com/brian-lagerman))
145- [#3919](https://github.com/mochajs/mocha/issues/3919): Update CI config files to use Node-12.x ([**@plroebuck**](https://github.com/plroebuck))
146- [#3892](https://github.com/mochajs/mocha/issues/3892): Rework reporter tests ([**@plroebuck**](https://github.com/plroebuck))
147- [#3872](https://github.com/mochajs/mocha/issues/3872): Rename `--exclude` to `--ignore` and create alias ([**@boneskull**](https://github.com/boneskull))
148- [#3963](https://github.com/mochajs/mocha/issues/3963): Hide stacktrace when cli args are missing ([**@outsideris**](https://github.com/outsideris))
149- [#3956](https://github.com/mochajs/mocha/issues/3956): Do not redeclare variable in docs array example ([**@DanielRuf**](https://github.com/DanielRuf))
150- [#3957](https://github.com/mochajs/mocha/issues/3957): Remove duplicate line-height property in `mocha.css` ([**@DanielRuf**](https://github.com/DanielRuf))
151- [#3960](https://github.com/mochajs/mocha/issues/3960): Don't re-initialize grep option on watch re-run ([**@geigerzaehler**](https://github.com/geigerzaehler))
152
153# 6.1.4 / 2019-04-18
154
155## :lock: Security Fixes
156
157- [#3877](https://github.com/mochajs/mocha/issues/3877): Upgrade [js-yaml](https://npm.im/js-yaml), addressing [code injection vulnerability](https://www.npmjs.com/advisories/813) ([**@bjornstar**](https://github.com/bjornstar))
158
159# 6.1.3 / 2019-04-11
160
161## :bug: Fixes
162
163- [#3863](https://github.com/mochajs/mocha/issues/3863): Fix `yargs`-related global scope pollution ([**@inukshuk**](https://github.com/inukshuk))
164- [#3869](https://github.com/mochajs/mocha/issues/3869): Fix failure when installed w/ `pnpm` ([**@boneskull**](https://github.com/boneskull))
165
166# 6.1.2 / 2019-04-08
167
168## :bug: Fixes
169
170- [#3867](https://github.com/mochajs/mocha/issues/3867): Re-publish v6.1.1 from POSIX OS to avoid dropped executable flags ([**@boneskull**](https://github.com/boneskull))
171
172# 6.1.1 / 2019-04-07
173
174## :bug: Fixes
175
176- [#3866](https://github.com/mochajs/mocha/issues/3866): Fix Windows End-of-Line publishing issue ([**@juergba**](https://github.com/juergba) & [**@cspotcode**](https://github.com/cspotcode))
177
178# 6.1.0 / 2019-04-07
179
180## :lock: Security Fixes
181
182- [#3845](https://github.com/mochajs/mocha/issues/3845): Update dependency "js-yaml" to v3.13.0 per npm security advisory ([**@plroebuck**](https://github.com/plroebuck))
183
184## :tada: Enhancements
185
186- [#3766](https://github.com/mochajs/mocha/issues/3766): Make reporter constructor support optional `options` parameter ([**@plroebuck**](https://github.com/plroebuck))
187- [#3760](https://github.com/mochajs/mocha/issues/3760): Add support for config files with `.jsonc` extension ([**@sstephant**](https://github.com/sstephant))
188
189## :fax: Deprecations
190
191These are _soft_-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:
192
193- [#3719](https://github.com/mochajs/mocha/issues/3719): Deprecate `this.skip()` for "after all" hooks ([**@juergba**](https://github.com/juergba))
194
195## :bug: Fixes
196
197- [#3829](https://github.com/mochajs/mocha/issues/3829): Use cwd-relative pathname to load config file ([**@plroebuck**](https://github.com/plroebuck))
198- [#3745](https://github.com/mochajs/mocha/issues/3745): Fix async calls of `this.skip()` in "before each" hooks ([**@juergba**](https://github.com/juergba))
199- [#3669](https://github.com/mochajs/mocha/issues/3669): Enable `--allow-uncaught` for uncaught exceptions thrown inside hooks ([**@givanse**](https://github.com/givanse))
200
201and some regressions:
202
203- [#3848](https://github.com/mochajs/mocha/issues/3848): Fix `Suite` cloning by copying `root` property ([**@fatso83**](https://github.com/fatso83))
204- [#3816](https://github.com/mochajs/mocha/issues/3816): Guard against undefined timeout option ([**@boneskull**](https://github.com/boneskull))
205- [#3814](https://github.com/mochajs/mocha/issues/3814): Update "yargs" in order to avoid deprecation message ([**@boneskull**](https://github.com/boneskull))
206- [#3788](https://github.com/mochajs/mocha/issues/3788): Fix support for multiple node flags ([**@aginzberg**](https://github.com/aginzberg))
207
208## :book: Documentation
209
210- [mochajs/mocha-examples](https://github.com/mochajs/mocha-examples): New repository of working examples of common configurations using mocha ([**@craigtaub**](https://github.com/craigtaub))
211- [#3850](https://github.com/mochajs/mocha/issues/3850): Remove pound icon showing on header hover on docs ([**@jd2rogers2**](https://github.com/jd2rogers2))
212- [#3812](https://github.com/mochajs/mocha/issues/3812): Add autoprefixer to documentation page CSS ([**@Munter**](https://github.com/Munter))
213- [#3811](https://github.com/mochajs/mocha/issues/3811): Update doc examples "tests.html" ([**@DavidLi119**](https://github.com/DavidLi119))
214- [#3807](https://github.com/mochajs/mocha/issues/3807): Mocha website HTML tweaks ([**@plroebuck**](https://github.com/plroebuck))
215- [#3793](https://github.com/mochajs/mocha/issues/3793): Update config file example ".mocharc.yml" ([**@cspotcode**](https://github.com/cspotcode))
216
217## :nut_and_bolt: Other
218
219- [#3830](https://github.com/mochajs/mocha/issues/3830): Replace dependency "findup-sync" with "find-up" for faster startup ([**@cspotcode**](https://github.com/cspotcode))
220- [#3799](https://github.com/mochajs/mocha/issues/3799): Update devDependencies to fix many npm vulnerabilities ([**@XhmikosR**](https://github.com/XhmikosR))
221
222# 6.0.2 / 2019-02-25
223
224## :bug: Fixes
225
226Two more regressions fixed:
227
228- [#3768](https://github.com/mochajs/mocha/issues/3768): Test file paths no longer dropped from `mocha.opts` ([**@boneskull**](https://github.com/boneskull))
229- [#3767](https://github.com/mochajs/mocha/issues/3767): `--require` does not break on module names that look like certain `node` flags ([**@boneskull**](https://github.com/boneskull))
230
231# 6.0.1 / 2019-02-21
232
233The obligatory round of post-major-release bugfixes.
234
235## :bug: Fixes
236
237These issues were regressions.
238
239- [#3754](https://github.com/mochajs/mocha/issues/3754): Mocha again finds `test.js` when run without arguments ([**@plroebuck**](https://github.com/plroebuck))
240- [#3756](https://github.com/mochajs/mocha/issues/3756): Mocha again supports third-party interfaces via `--ui` ([**@boneskull**](https://github.com/boneskull))
241- [#3755](https://github.com/mochajs/mocha/issues/3755): Fix broken `--watch` ([**@boneskull**](https://github.com/boneskull))
242- [#3759](https://github.com/mochajs/mocha/issues/3759): Fix unwelcome deprecation notice when Mocha run against languages (CoffeeScript) with implicit return statements; _returning a non-`undefined` value from a `describe` callback is no longer considered deprecated_ ([**@boneskull**](https://github.com/boneskull))
243
244## :book: Documentation
245
246- [#3738](https://github.com/mochajs/mocha/issues/3738): Upgrade to `@mocha/docdash@2` ([**@tendonstrength**](https://github.com/tendonstrength))
247- [#3751](https://github.com/mochajs/mocha/issues/3751): Use preferred names for example config files ([**@Szauka**](https://github.com/Szauka))
248
249# 6.0.0 / 2019-02-18
250
251## :tada: Enhancements
252
253- [#3726](https://github.com/mochajs/mocha/issues/3726): Add ability to unload files from `require` cache ([**@plroebuck**](https://github.com/plroebuck))
254
255## :bug: Fixes
256
257- [#3737](https://github.com/mochajs/mocha/issues/3737): Fix falsy values from options globals ([**@plroebuck**](https://github.com/plroebuck))
258- [#3707](https://github.com/mochajs/mocha/issues/3707): Fix encapsulation issues for `Suite#_onlyTests` and `Suite#_onlySuites` ([**@vkarpov15**](https://github.com/vkarpov15))
259- [#3711](https://github.com/mochajs/mocha/issues/3711): Fix diagnostic messages dealing with plurality and markup of output ([**@plroebuck**](https://github.com/plroebuck))
260- [#3723](https://github.com/mochajs/mocha/issues/3723): Fix "reporter-option" to allow comma-separated options ([**@boneskull**](https://github.com/boneskull))
261- [#3722](https://github.com/mochajs/mocha/issues/3722): Fix code quality and performance of `lookupFiles` and `files` ([**@plroebuck**](https://github.com/plroebuck))
262- [#3650](https://github.com/mochajs/mocha/issues/3650), [#3654](https://github.com/mochajs/mocha/issues/3654): Fix noisy error message when no files found ([**@craigtaub**](https://github.com/craigtaub))
263- [#3632](https://github.com/mochajs/mocha/issues/3632): Tests having an empty title are no longer confused with the "root" suite ([**@juergba**](https://github.com/juergba))
264- [#3666](https://github.com/mochajs/mocha/issues/3666): Fix missing error codes ([**@vkarpov15**](https://github.com/vkarpov15))
265- [#3684](https://github.com/mochajs/mocha/issues/3684): Fix exiting problem in Node.js v11.7.0+ ([**@addaleax**](https://github.com/addaleax))
266- [#3691](https://github.com/mochajs/mocha/issues/3691): Fix `--delay` (and other boolean options) not working in all cases ([**@boneskull**](https://github.com/boneskull))
267- [#3692](https://github.com/mochajs/mocha/issues/3692): Fix invalid command-line argument usage not causing actual errors ([**@boneskull**](https://github.com/boneskull))
268- [#3698](https://github.com/mochajs/mocha/issues/3698), [#3699](https://github.com/mochajs/mocha/issues/3699): Fix debug-related Node.js options not working in all cases ([**@boneskull**](https://github.com/boneskull))
269- [#3700](https://github.com/mochajs/mocha/issues/3700): Growl notifications now show the correct number of tests run ([**@outsideris**](https://github.com/outsideris))
270- [#3686](https://github.com/mochajs/mocha/issues/3686): Avoid potential ReDoS when diffing large objects ([**@cyjake**](https://github.com/cyjake))
271- [#3715](https://github.com/mochajs/mocha/issues/3715): Fix incorrect order of emitted events when used programmatically ([**@boneskull**](https://github.com/boneskull))
272- [#3706](https://github.com/mochajs/mocha/issues/3706): Fix regression wherein `--reporter-option`/`--reporter-options` did not support comma-separated key/value pairs ([**@boneskull**](https://github.com/boneskull))
273
274## :book: Documentation
275
276- [#3652](https://github.com/mochajs/mocha/issues/3652): Switch from Jekyll to Eleventy ([**@Munter**](https://github.com/Munter))
277
278## :nut_and_bolt: Other
279
280- [#3677](https://github.com/mochajs/mocha/issues/3677): Add error objects for createUnsupportedError and createInvalidExceptionError ([**@boneskull**](https://github.com/boneskull))
281- [#3733](https://github.com/mochajs/mocha/issues/3733): Removed unnecessary processing in post-processing hook ([**@wanseob**](https://github.com/wanseob))
282- [#3730](https://github.com/mochajs/mocha/issues/3730): Update nyc to latest version ([**@coreyfarrell**](https://github.com/coreyfarrell))
283- [#3648](https://github.com/mochajs/mocha/issues/3648), [#3680](https://github.com/mochajs/mocha/issues/3680): Fixes to support latest versions of [unexpected](https://npm.im/unexpected) and [unexpected-sinon](https://npm.im/unexpected-sinon) ([**@sunesimonsen**](https://github.com/sunesimonsen))
284- [#3638](https://github.com/mochajs/mocha/issues/3638): Add meta tag to site ([**@MartijnCuppens**](https://github.com/MartijnCuppens))
285- [#3653](https://github.com/mochajs/mocha/issues/3653): Fix parts of test suite failing to run on Windows ([**@boneskull**](https://github.com/boneskull))
286
287# 6.0.0-1 / 2019-01-02
288
289## :bug: Fixes
290
291- Fix missing `mocharc.json` in published package ([**@boneskull**](https://github.com/boneskull))
292
293# 6.0.0-0 / 2019-01-01
294
295**Documentation for this release can be found at [next.mochajs.org](https://next.mochajs.org)**!
296
297Welcome [**@plroebuck**](https://github.com/plroebuck), [**@craigtaub**](https://github.com/craigtaub), & [**@markowsiak**](https://github.com/markowsiak) to the team!
298
299## :boom: Breaking Changes
300
301- [#3149](https://github.com/mochajs/mocha/issues/3149): **Drop Node.js v4.x support** ([**@outsideris**](https://github.com/outsideris))
302- [#3556](https://github.com/mochajs/mocha/issues/3556): Changes to command-line options ([**@boneskull**](https://github.com/boneskull)):
303 - `--grep` and `--fgrep` are now mutually exclusive; attempting to use both will cause Mocha to fail instead of simply ignoring `--grep`
304 - `--compilers` is no longer supported; attempting to use will cause Mocha to fail with a link to more information
305 - `-d` is no longer an alias for `--debug`; `-d` is currently ignored
306 - [#3275](https://github.com/mochajs/mocha/issues/3275): `--watch-extensions` no longer implies `js`; it must be explicitly added ([**@TheDancingCode**](https://github.com/TheDancingCode))
307- [#2908](https://github.com/mochajs/mocha/issues/2908): `tap` reporter emits error messages ([**@chrmod**](https://github.com/chrmod))
308- [#2819](https://github.com/mochajs/mocha/issues/2819): When conditionally skipping in a `before` hook, subsequent `before` hooks _and_ tests in nested suites are now skipped ([**@bannmoore**](https://github.com/bannmoore))
309- [#627](https://github.com/mochajs/mocha/issues/627): Emit filepath in "timeout exceeded" exceptions where applicable ([**@boneskull**](https://github.com/boneskull))
310- [#3556](https://github.com/mochajs/mocha/issues/3556): `lib/template.html` has moved to `lib/browser/template.html` ([**@boneskull**](https://github.com/boneskull))
311- [#2576](https://github.com/mochajs/mocha/issues/2576): An exception is now thrown if Mocha fails to parse or find a `mocha.opts` at a user-specified path ([**@plroebuck**](https://github.com/plroebuck))
312- [#3458](https://github.com/mochajs/mocha/issues/3458): Instantiating a `Base`-extending reporter without a `Runner` parameter will throw an exception ([**@craigtaub**](https://github.com/craigtaub))
313- [#3125](https://github.com/mochajs/mocha/issues/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**](https://github.com/craigtaub))
314
315## :fax: Deprecations
316
317These are _soft_-deprecated, and will emit a warning upon use. Support will be removed in (likely) the next major version of Mocha:
318
319- `-gc` users should use `--gc-global` instead
320- Consumers of the function exported by `bin/options` should now use the `loadMochaOpts` or `loadOptions` (preferred) functions exported by the `lib/cli/options` module
321
322Regarding the `Mocha` class constructor (from `lib/mocha`):
323
324- Use property `color: false` instead of `useColors: false`
325- Use property `timeout: false` instead of `enableTimeouts: false`
326
327All of the above deprecations were introduced by [#3556](https://github.com/mochajs/mocha/issues/3556).
328
329`mocha.opts` is now considered "legacy"; please prefer RC file or `package.json` over `mocha.opts`.
330
331## :tada: Enhancements
332
333Enhancements introduced in [#3556](https://github.com/mochajs/mocha/issues/3556):
334
335- Mocha now supports "RC" files in JS, JSON, YAML, or `package.json`-based (using `mocha` property) format
336
337 - `.mocharc.js`, `.mocharc.json`, `.mocharc.yaml` or `.mocharc.yml` are valid "rc" file names and will be automatically loaded
338 - Use `--config /path/to/rc/file` to specify an explicit path
339 - Use `--package /path/to/package.json` to specify an explicit `package.json` to read the `mocha` prop from
340 - Use `--no-config` or `--no-package` to completely disable loading of configuration via RC file and `package.json`, respectively
341 - Configurations are merged as applicable using the priority list:
342 1. Command-line arguments
343 1. RC file
344 1. `package.json`
345 1. `mocha.opts`
346 1. Mocha's own defaults
347 - Check out these [example config files](https://github.com/mochajs/mocha/tree/master/example/config)
348
349- Node/V8 flag support in `mocha` executable:
350
351 - Support all allowed `node` flags as supported by the running version of `node` (also thanks to [**@demurgos**](https://github.com/demurgos))
352 - Support any V8 flag by prepending `--v8-` to the flag name
353 - All flags are also supported via config files, `package.json` properties, or `mocha.opts`
354 - Debug-related flags (e.g., `--inspect`) now _imply_ `--no-timeouts`
355 - Use of e.g., `--debug` will automatically invoke `--inspect` if supported by running version of `node`
356
357- Support negation of any Mocha-specific command-line flag by prepending `--no-` to the flag name
358
359- Interfaces now have descriptions when listed using `--interfaces` flag
360
361- `Mocha` constructor supports all options
362
363- `--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`.
364
365- [#3552](https://github.com/mochajs/mocha/issues/3552): `tap` reporter is now TAP13-capable ([**@plroebuck**](https://github.com/plroebuck) & [**@mollstam**](https://github.com/mollstam))
366
367- [#3535](https://github.com/mochajs/mocha/issues/3535): Mocha's version can now be queried programmatically via public property `Mocha.prototype.version` ([**@plroebuck**](https://github.com/plroebuck))
368
369- [#3428](https://github.com/mochajs/mocha/issues/3428): `xunit` reporter shows diffs ([**@mlucool**](https://github.com/mlucool))
370
371- [#2529](https://github.com/mochajs/mocha/issues/2529): `Runner` now emits a `retry` event when tests are retried (reporters can listen for this) ([**@catdad**](https://github.com/catdad))
372
373- [#2962](https://github.com/mochajs/mocha/issues/2962), [#3111](https://github.com/mochajs/mocha/issues/3111): In-browser notification support; warn about missing prereqs when `--growl` supplied ([**@plroebuck**](https://github.com/plroebuck))
374
375## :bug: Fixes
376
377- [#3356](https://github.com/mochajs/mocha/issues/3356): `--no-timeouts` and `--timeout 0` now does what you'd expect ([**@boneskull**](https://github.com/boneskull))
378- [#3475](https://github.com/mochajs/mocha/issues/3475): Restore `--no-exit` option ([**@boneskull**](https://github.com/boneskull))
379- [#3570](https://github.com/mochajs/mocha/issues/3570): Long-running tests now respect `SIGINT` ([**@boneskull**](https://github.com/boneskull))
380- [#2944](https://github.com/mochajs/mocha/issues/2944): `--forbid-only` and `--forbid-pending` now "fail fast" when encountered on a suite ([**@outsideris**](https://github.com/outsideris))
381- [#1652](https://github.com/mochajs/mocha/issues/1652), [#2951](https://github.com/mochajs/mocha/issues/2951): Fix broken clamping of timeout values ([**@plroebuck**](https://github.com/plroebuck))
382- [#2095](https://github.com/mochajs/mocha/issues/2095), [#3521](https://github.com/mochajs/mocha/issues/3521): Do not log `stdout:` prefix in browser console ([**@Bamieh**](https://github.com/Bamieh))
383- [#3595](https://github.com/mochajs/mocha/issues/3595): Fix mochajs.org deployment problems ([**@papandreou**](https://github.com/papandreou))
384- [#3518](https://github.com/mochajs/mocha/issues/3518): Improve `utils.isPromise()` ([**@fabiosantoscode**](https://github.com/fabiosantoscode))
385- [#3320](https://github.com/mochajs/mocha/issues/3320): Fail gracefully when non-extensible objects are thrown in async tests ([**@fargies**](https://github.com/fargies))
386- [#2475](https://github.com/mochajs/mocha/issues/2475): XUnit does not duplicate test result numbers in "errors" and "failures"; "failures" will **always** be zero ([**@mlucool**](https://github.com/mlucool))
387- [#3398](https://github.com/mochajs/mocha/issues/3398), [#3598](https://github.com/mochajs/mocha/issues/3598), [#3457](https://github.com/mochajs/mocha/issues/3457), [#3617](https://github.com/mochajs/mocha/issues/3617): Fix regression wherein `--bail` would not execute "after" nor "after each" hooks ([**@juergba**](https://github.com/juergba))
388- [#3580](https://github.com/mochajs/mocha/issues/3580): Fix potential exception when using XUnit reporter programmatically ([**@Lana-Light**](https://github.com/Lana-Light))
389- [#1304](https://github.com/mochajs/mocha/issues/1304): Do not output color to `TERM=dumb` ([**@plroebuck**](https://github.com/plroebuck))
390
391## :book: Documentation
392
393- [#3525](https://github.com/mochajs/mocha/issues/3525): Improvements to `.github/CONTRIBUTING.md` ([**@markowsiak**](https://github.com/markowsiak))
394- [#3466](https://github.com/mochajs/mocha/issues/3466): Update description of `slow` option ([**@finfin**](https://github.com/finfin))
395- [#3405](https://github.com/mochajs/mocha/issues/3405): Remove references to bower installations ([**@goteamtim**](https://github.com/goteamtim))
396- [#3361](https://github.com/mochajs/mocha/issues/3361): Improvements to `--watch` docs ([**@benglass**](https://github.com/benglass))
397- [#3136](https://github.com/mochajs/mocha/issues/3136): Improve docs around globbing and shell expansion ([**@akrawchyk**](https://github.com/akrawchyk))
398- [#2819](https://github.com/mochajs/mocha/issues/2819): Update docs around skips and hooks ([**@bannmoore**](https://github.com/bannmoore))
399- Many improvements by [**@outsideris**](https://github.com/outsideris)
400
401## :nut_and_bolt: Other
402
403- [#3557](https://github.com/mochajs/mocha/issues/3557): Use `ms` userland module instead of hand-rolled solution ([**@gizemkeser**](https://github.com/gizemkeser))
404- Many CI fixes and other refactors by [**@plroebuck**](https://github.com/plroebuck)
405- Test refactors by [**@outsideris**](https://github.com/outsideris)
406
407# 5.2.0 / 2018-05-18
408
409## :tada: Enhancements
410
411- [#3375](https://github.com/mochajs/mocha/pull/3375): Add support for comments in `mocha.opts` ([@plroebuck](https://github.com/plroebuck))
412
413## :bug: Fixes
414
415- [#3346](https://github.com/mochajs/mocha/pull/3346): Exit correctly from `before` hooks when using `--bail` ([@outsideris](https://github.com/outsideris))
416
417## :book: Documentation
418
419- [#3328](https://github.com/mochajs/mocha/pull/3328): Mocha-flavored [API docs](https://mochajs.org/api/)! ([@Munter](https://github.com/munter))
420
421## :nut_and_bolt: Other
422
423- [#3330](https://github.com/mochajs/mocha/pull/3330): Use `Buffer.from()` ([@harrysarson](https://github.com/harrysarson))
424- [#3295](https://github.com/mochajs/mocha/pull/3295): Remove redundant folder ([@DavNej](https://github.com/DajNev))
425- [#3356](https://github.com/mochajs/mocha/pull/3356): Refactoring ([@plroebuck](https://github.com/plroebuck))
426
427# 5.1.1 / 2018-04-18
428
429## :bug: Fixes
430
431- [#3325](https://github.com/mochajs/mocha/issues/3325): Revert change which broke `--watch` ([@boneskull](https://github.com/boneskull))
432
433# 5.1.0 / 2018-04-12
434
435## :tada: Enhancements
436
437- [#3210](https://github.com/mochajs/mocha/pull/3210): Add `--exclude` option ([@metalex9](https://github.com/metalex9))
438
439## :bug: Fixes
440
441- [#3318](https://github.com/mochajs/mocha/pull/3318): Fix failures in circular objects in JSON reporter ([@jeversmann](https://github.com/jeversmann), [@boneskull](https://github.com/boneskull))
442
443## :book: Documentation
444
445- [#3323](https://github.com/mochajs/mocha/pull/3323): Publish actual [API documentation](https://mochajs.org/api/)! ([@dfberry](https://github.com/dfberry), [@Munter](https://github.com/munter))
446- [#3299](https://github.com/mochajs/mocha/pull/3299): Improve docs around exclusive tests ([@nicgirault](https://github.com/nicgirault))
447
448## :nut_and_bolt: Other
449
450- [#3302](https://github.com/mochajs/mocha/pull/3302), [#3308](https://github.com/mochajs/mocha/pull/3308), [#3310](https://github.com/mochajs/mocha/pull/3310), [#3315](https://github.com/mochajs/mocha/pull/3315), [#3316](https://github.com/mochajs/mocha/pull/3316): Build matrix improvements ([more info](https://boneskull.com/mocha-and-travis-ci-build-stages/)) ([@outsideris](https://github.com/outsideris), [@boneskull](https://github.com/boneskull))
451- [#3272](https://github.com/mochajs/mocha/pull/3272): Refactor reporter tests ([@jMuzsik](https://github.com/jMuzsik))
452
453# 5.0.5 / 2018-03-22
454
455Welcome [@outsideris](https://github.com/outsideris) to the team!
456
457## :bug: Fixes
458
459- [#3096](https://github.com/mochajs/mocha/issues/3096): Fix `--bail` failing to bail within hooks ([@outsideris](https://github.com/outsideris))
460- [#3184](https://github.com/mochajs/mocha/issues/3184): Don't skip too many suites (using `describe.skip()`) ([@outsideris](https://github.com/outsideris))
461
462## :book: Documentation
463
464- [#3133](https://github.com/mochajs/mocha/issues/3133): Improve docs regarding "pending" behavior ([@ematicipo](https://github.com/ematicipo))
465- [#3276](https://github.com/mochajs/mocha/pull/3276), [#3274](https://github.com/mochajs/mocha/pull/3274): Fix broken stuff in `CHANGELOG.md` ([@tagoro9](https://github.com/tagoro9), [@honzajavorek](https://github.com/honzajavorek))
466
467## :nut_and_bolt: Other
468
469- [#3208](https://github.com/mochajs/mocha/issues/3208): Improve test coverage for AMD users ([@outsideris](https://github.com/outsideris))
470- [#3267](https://github.com/mochajs/mocha/pull/3267): Remove vestiges of PhantomJS from CI ([@anishkny](https://github.com/anishkny))
471- [#2952](https://github.com/mochajs/mocha/issues/2952): Fix a debug message ([@boneskull](https://github.com/boneskull))
472
473# 5.0.4 / 2018-03-07
474
475## :bug: Fixes
476
477- [#3265](https://github.com/mochajs/mocha/issues/3265): Fixes regression in "watch" functionality introduced in v5.0.2 ([@outsideris](https://github.com/outsideris))
478
479# 5.0.3 / 2018-03-06
480
481This patch features a fix to address a potential "low severity" [ReDoS vulnerability](https://snyk.io/vuln/npm:diff:20180305) in the [diff](https://npm.im/diff) package (a dependency of Mocha).
482
483## :lock: Security Fixes
484
485- [#3266](https://github.com/mochajs/mocha/pull/3266): Bump `diff` to v3.5.0 ([@anishkny](https://github.com/anishkny))
486
487## :nut_and_bolt: Other
488
489- [#3011](https://github.com/mochajs/mocha/issues/3011): Expose `generateDiff()` in `Base` reporter ([@harrysarson](https://github.com/harrysarson))
490
491# 5.0.2 / 2018-03-05
492
493This 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!
494
495## :bug: Fixes
496
497- [#3226](https://github.com/mochajs/mocha/issues/3226): Do not swallow errors that are thrown asynchronously from passing tests ([@boneskull](https://github.com/boneskull)). Example:
498
499 \```js
500 it('should actually fail, sorry!', function (done) {
501 // passing assertion
502 assert(true === true);
503
504 // test complete & is marked as passing
505 done();
506
507 // ...but something evil lurks within
508 setTimeout(() => {
509 throw new Error('chaos!');
510 }, 100);
511 });
512 \```
513
514 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.
515
516 **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')`.
517
518- [#3093](https://github.com/mochajs/mocha/issues/3093): Fix stack trace reformatting problem ([@outsideris](https://github.com/outsideris))
519
520## :nut_and_bolt: Other
521
522- [#3248](https://github.com/mochajs/mocha/issues/3248): Update `browser-stdout` to v1.3.1 ([@honzajavorek](https://github.com/honzajavorek))
523
524# 5.0.1 / 2018-02-07
525
526...your garden-variety patch release.
527
528Special thanks to [Wallaby.js](https://wallabyjs.com) for their continued support! :heart:
529
530## :bug: Fixes
531
532- [#1838](https://github.com/mochajs/mocha/issues/1838): `--delay` now works with `.only()` ([@silviom](https://github.com/silviom))
533- [#3119](https://github.com/mochajs/mocha/issues/3119): Plug memory leak present in v8 ([@boneskull](https://github.com/boneskull))
534
535## :book: Documentation
536
537- [#3132](https://github.com/mochajs/mocha/issues/3132), [#3098](https://github.com/mochajs/mocha/issues/3098): Update `--glob` docs ([@outsideris](https://github.com/outsideris))
538- [#3212](https://github.com/mochajs/mocha/pull/3212): Update [Wallaby.js](https://wallabyjs.com)-related docs ([@ArtemGovorov](https://github.com/ArtemGovorov))
539- [#3205](https://github.com/mochajs/mocha/pull/3205): Remove outdated cruft ([@boneskull](https://github.com/boneskull))
540
541## :nut_and_bolt: Other
542
543- [#3224](https://github.com/mochajs/mocha/pull/3224): Add proper Wallaby.js config ([@ArtemGovorov](https://github.com/ArtemGovorov))
544- [#3230](https://github.com/mochajs/mocha/pull/3230): Update copyright year ([@josephlin55555](https://github.com/josephlin55555))
545
546# 5.0.0 / 2018-01-17
547
548Mocha starts off 2018 right by again dropping support for _unmaintained rubbish_.
549
550Welcome [@vkarpov15](https://github.com/vkarpov15) to the team!
551
552## :boom: Breaking Changes
553
554- **[#3148](https://github.com/mochajs/mocha/issues/3148): Drop support for IE9 and IE10** ([@Bamieh](https://github.com/Bamieh))
555 Practically speaking, only code which consumes (through bundling or otherwise) the userland [buffer](https://npm.im/buffer) module should be affected. However, Mocha will no longer test against these browsers, nor apply fixes for them.
556
557## :tada: Enhancements
558
559- [#3181](https://github.com/mochajs/mocha/issues/3181): Add useful new `--file` command line argument ([documentation](https://mochajs.org/#--file-file)) ([@hswolff](https://github.com/hswolff))
560
561## :bug: Fixes
562
563- [#3187](https://github.com/mochajs/mocha/issues/3187): Fix inaccurate test duration reporting ([@FND](https://github.com/FND))
564- [#3202](https://github.com/mochajs/mocha/pull/3202): Fix bad markup in HTML reporter ([@DanielRuf](https://github.com/DanielRuf))
565
566## :sunglasses: Developer Experience
567
568- [#2352](https://github.com/mochajs/mocha/issues/2352): Ditch GNU Make for [nps](https://npm.im/nps) to manage scripts ([@TedYav](https://github.com/TedYav))
569
570## :book: Documentation
571
572- [#3137](https://github.com/mochajs/mocha/issues/3137): Add missing `--no-timeouts` docs ([@dfberry](https://github.com/dfberry))
573- [#3134](https://github.com/mochajs/mocha/issues/3134): Improve `done()` callback docs ([@maraisr](https://github.com/maraisr))
574- [#3135](https://github.com/mochajs/mocha/issues/3135): Fix cross-references ([@vkarpov15](https://github.com/vkarpov15))
575- [#3163](https://github.com/mochajs/mocha/pull/3163): Fix tpyos ([@tbroadley](https://github.com/tbroadley))
576- [#3177](https://github.com/mochajs/mocha/pull/3177): Tweak `README.md` organization ([@xxczaki](https://github.com/xxczaki))
577- Misc updates ([@boneskull](https://github.com/boneskull))
578
579## :nut_and_bolt: Other
580
581- [#3118](https://github.com/mochajs/mocha/issues/3118): Move TextMate Integration to [its own repo](https://github.com/mochajs/mocha.tmbundle) ([@Bamieh](https://github.com/Bamieh))
582- [#3185](https://github.com/mochajs/mocha/issues/3185): Add Node.js v9 to build matrix; remove v7 ([@xxczaki](https://github.com/xxczaki))
583- [#3172](https://github.com/mochajs/mocha/issues/3172): Markdown linting ([@boneskull](https://github.com/boneskull))
584- Test & Netlify updates ([@Munter](https://github.com/munter), [@boneskull](https://github.com/boneskull))
585
586# 4.1.0 / 2017-12-28
587
588This is mainly a "housekeeping" release.
589
590Welcome [@Bamieh](https://github.com/Bamieh) and [@xxczaki](https://github.com/xxczaki) to the team!
591
592## :bug: Fixes
593
594- [#2661](https://github.com/mochajs/mocha/issues/2661): `progress` reporter now accepts reporter options ([@canoztokmak](https://github.com/canoztokmak))
595- [#3142](https://github.com/mochajs/mocha/issues/3142): `xit` in `bdd` interface now properly returns its `Test` object ([@Bamieh](https://github.com/Bamieh))
596- [#3075](https://github.com/mochajs/mocha/pull/3075): Diffs now computed eagerly to avoid misinformation when reported ([@abrady0](https://github.com/abrady0))
597- [#2745](https://github.com/mochajs/mocha/issues/2745): `--help` will now help you even if you have a `mocha.opts` ([@Zarel](https://github.com/Zarel))
598
599## :tada: Enhancements
600
601- [#2514](https://github.com/mochajs/mocha/issues/2514): The `--no-diff` flag will completely disable diff output ([@CapacitorSet](https://github.com/CapacitorSet))
602- [#3058](https://github.com/mochajs/mocha/issues/3058): All "setters" in Mocha's API are now also "getters" if called without arguments ([@makepanic](https://github.com/makepanic))
603
604## :book: Documentation
605
606- [#3170](https://github.com/mochajs/mocha/pull/3170): Optimization and site speed improvements ([@Munter](https://github.com/munter))
607- [#2987](https://github.com/mochajs/mocha/issues/2987): Moved the old [site repo](https://github.com/mochajs/mochajs.github.io) into the main repo under `docs/` ([@boneskull](https://github.com/boneskull))
608- [#2896](https://github.com/mochajs/mocha/issues/2896): Add [maintainer guide](https://github.com/mochajs/mocha/blob/master/MAINTAINERS.md) ([@boneskull](https://github.com/boneskull))
609- Various fixes and updates ([@xxczaki](https://github.com/xxczaki), [@maty21](https://github.com/maty21), [@leedm777](https://github.com/leedm777))
610
611## :nut_and_bolt: Other
612
613- Test improvements and fixes ([@eugenet8k](https://github.com/eugenet8k), [@ngeor](https://github.com/ngeor), [@38elements](https://github.com/38elements), [@Gerhut](https://github.com/Gerhut), [@ScottFreeCode](https://github.com/ScottFreeCode), [@boneskull](https://github.com/boneskull))
614- Refactoring and cruft excision ([@38elements](https://github.com/38elements), [@Bamieh](https://github.com/Bamieh), [@finnigantime](https://github.com/finnigantime), [@boneskull](https://github.com/boneskull))
615
616# 4.0.1 / 2017-10-05
617
618## :bug: Fixes
619
620- [#3051](https://github.com/mochajs/mocha/pull/3051): Upgrade Growl to v1.10.3 to fix its [peer dep problems](https://github.com/tj/node-growl/pull/68) ([@dpogue](https://github.com/dpogue))
621
622# 4.0.0 / 2017-10-02
623
624You might want to read this before filing a new bug! :stuck_out_tongue_closed_eyes:
625
626## :boom: Breaking Changes
627
628For more info, please [read this article](https://boneskull.com/mocha-v4-nears-release/).
629
630### Compatibility
631
632- [#3016](https://github.com/mochajs/mocha/issues/3016): Drop support for unmaintained versions of Node.js ([@boneskull](https://github.com/boneskull)):
633 - 0.10.x
634 - 0.11.x
635 - 0.12.x
636 - iojs (any)
637 - 5.x.x
638- [#2979](https://github.com/mochajs/mocha/issues/2979): Drop support for non-ES5-compliant browsers ([@boneskull](https://github.com/boneskull)):
639 - IE7
640 - IE8
641 - PhantomJS 1.x
642- [#2615](https://github.com/mochajs/mocha/issues/2615): Drop Bower support; old versions (3.x, etc.) will remain available ([@ScottFreeCode](https://github.com/ScottFreeCode), [@boneskull](https://github.com/boneskull))
643
644### Default Behavior
645
646- [#2879](https://github.com/mochajs/mocha/issues/2879): By default, Mocha will no longer force the process to exit once all tests complete. This means any test code (or code under test) which would normally prevent `node` from exiting will do so when run in Mocha. Supply the `--exit` flag to revert to pre-v4.0.0 behavior ([@ScottFreeCode](https://github.com/ScottFreeCode), [@boneskull](https://github.com/boneskull))
647
648### Reporter Output
649
650- [#2095](https://github.com/mochajs/mocha/issues/2095): Remove `stdout:` prefix from browser reporter logs ([@skeggse](https://github.com/skeggse))
651- [#2295](https://github.com/mochajs/mocha/issues/2295): Add separator in "unified diff" output ([@olsonpm](https://github.com/olsonpm))
652- [#2686](https://github.com/mochajs/mocha/issues/2686): Print failure message when `--forbid-pending` or `--forbid-only` is specified ([@ScottFreeCode](https://github.com/ScottFreeCode))
653- [#2814](https://github.com/mochajs/mocha/pull/2814): Indent contexts for better readability when reporting failures ([@charlierudolph](https://github.com/charlierudolph))
654
655## :-1: Deprecations
656
657- [#2493](https://github.com/mochajs/mocha/issues/2493): The `--compilers` command-line option is now soft-deprecated and will emit a warning on `STDERR`. Read [this](https://github.com/mochajs/mocha/wiki/compilers-deprecation) for more info and workarounds ([@ScottFreeCode](https://github.com/ScottFreeCode), [@boneskull](https://github.com/boneskull))
658
659## :tada: Enhancements
660
661- [#2628](https://github.com/mochajs/mocha/issues/2628): Allow override of default test suite name in XUnit reporter ([@ngeor](https://github.com/ngeor))
662
663## :book: Documentation
664
665- [#3020](https://github.com/mochajs/mocha/pull/3020): Link to CLA in `README.md` and `CONTRIBUTING.md` ([@skeggse](https://github.com/skeggse))
666
667## :nut_and_bolt: Other
668
669- [#2890](https://github.com/mochajs/mocha/issues/2890): Speed up build by (re-)consolidating SauceLabs tests ([@boneskull](https://github.com/boneskull))
670
671# 3.5.3 / 2017-09-11
672
673## :bug: Fixes
674
675- [#3003](https://github.com/mochajs/mocha/pull/3003): Fix invalid entities in xUnit reporter first appearing in v3.5.1 ([@jkrems](https://github.com/jkrems))
676
677# 3.5.2 / 2017-09-10
678
679## :bug: Fixes
680
681- [#3001](https://github.com/mochajs/mocha/pull/3001): Fix AMD-related failures first appearing in v3.5.1 ([@boneskull](https://github.com/boneskull))
682
683# 3.5.1 / 2017-09-09
684
685## :newspaper: News
686
687- :mega: Mocha is now sponsoring [PDXNode](http://pdxnode.org)! If you're in the [Portland](https://wikipedia.org/wiki/Portland,_Oregon) area, come check out the monthly talks and hack nights!
688
689## :bug: Fixes
690
691- [#2997](https://github.com/mochajs/mocha/pull/2997): Fix missing `xit` export for "require" interface ([@solodynamo](https://github.com/solodynamo))
692- [#2957](https://github.com/mochajs/mocha/pull/2957): Fix unicode character handling in XUnit reporter failures ([@jkrems](https://github.com/jkrems))
693
694## :nut_and_bolt: Other
695
696- [#2986](https://github.com/mochajs/mocha/pull/2986): Add issue and PR templates ([@kungapal](https://github.com/kungapal))
697- [#2918](https://github.com/mochajs/mocha/pull/2918): Drop bash dependency for glob-related tests ([@ScottFreeCode](https://github.com/ScottFreeCode))
698- [#2922](https://github.com/mochajs/mocha/pull/2922): Improve `--compilers` coverage ([@ScottFreeCode](https://github.com/ScottFreeCode))
699- [#2981](https://github.com/mochajs/mocha/pull/2981): Fix tpyos and spelling errors ([@jsoref](https://github.com/jsoref))
700
701# 3.5.0 / 2017-07-31
702
703## :newspaper: News
704
705- Mocha now has a [code of conduct](https://github.com/mochajs/mocha/blob/master/.github/CODE_OF_CONDUCT.md) (thanks [@kungapal](https://github.com/kungapal)!).
706- Old issues and PRs are now being marked "stale" by [Probot's "Stale" plugin](https://github.com/probot/stale). If an issue is marked as such, and you would like to see it remain open, simply add a new comment to the ticket or PR.
707- **WARNING**: Support for non-ES5-compliant environments will be dropped starting with version 4.0.0 of Mocha!
708
709## :lock: Security Fixes
710
711- [#2860](https://github.com/mochajs/mocha/pull/2860): Address [CVE-2015-8315](https://nodesecurity.io/advisories/46) via upgrade of [debug](https://npm.im/debug) ([@boneskull](https://github.com/boneskull))
712
713## :tada: Enhancements
714
715- [#2696](https://github.com/mochajs/mocha/pull/2696): Add `--forbid-only` and `--forbid-pending` flags. Use these in CI or hooks to ensure tests aren't accidentally being skipped! ([@charlierudolph](https://github.com/charlierudolph))
716- [#2813](https://github.com/mochajs/mocha/pull/2813): Support Node.js 8's `--napi-modules` flag ([@jupp0r](https://github.com/jupp0r))
717
718## :nut_and_bolt: Other
719
720- Various CI-and-test-related fixes and improvements ([@boneskull](https://github.com/boneskull), [@dasilvacontin](https://github.com/dasilvacontin), [@PopradiArpad](https://github.com/PopradiArpad), [@Munter](https://github.com/munter), [@ScottFreeCode](https://github.com/ScottFreeCode))
721- "Officially" support Node.js 8 ([@elergy](https://github.com/elergy))
722
723# 3.4.2 / 2017-05-24
724
725## :bug: Fixes
726
727- [#2802](https://github.com/mochajs/mocha/issues/2802): Remove call to deprecated `os.tmpDir` ([@makepanic](https://github.com/makepanic))
728- [#2820](https://github.com/mochajs/mocha/pull/2820): Eagerly set `process.exitCode` ([@chrisleck](https://github.com/chrisleck))
729
730## :nut_and_bolt: Other
731
732- [#2807](https://github.com/mochajs/mocha/pull/2807): Move linting into an npm script ([@Munter](https://github.com/munter))
733
734# 3.4.1 / 2017-05-14
735
736Fixed a publishing mishap with git's autocrlf settings.
737
738# 3.4.0 / 2017-05-14
739
740Mocha is now moving to a quicker release schedule: when non-breaking changes are merged, a release should happen that week.
741
742This week's highlights:
743
744- `allowUncaught` added to commandline as `--allow-uncaught` (and bugfixed)
745- warning-related Node flags
746
747## :tada: Enhancements
748
749- [#2793](https://github.com/mochajs/mocha/pull/2793), [#2697](https://github.com/mochajs/mocha/pull/2697): add --allowUncaught to Node.js ([@lrowe](https://github.com/lrowe))
750- [#2733](https://github.com/mochajs/mocha/pull/2733): Add `--no-warnings` and `--trace-warnings` flags ([@sonicdoe](https://github.com/sonicdoe))
751
752## :bug: Fixes
753
754- [#2793](https://github.com/mochajs/mocha/pull/2793), [#2697](https://github.com/mochajs/mocha/pull/2697): fix broken allowUncaught ([@lrowe](https://github.com/lrowe))
755
756## :nut_and_bolt: Other
757
758- [#2778](https://github.com/mochajs/mocha/pull/2778): Add license report and scan status ([@xizhao](https://github.com/xizhao))
759- [#2794](https://github.com/mochajs/mocha/pull/2794): no special case for macOS running Karma locally ([@boneskull](https://github.com/boneskull))
760- [#2795](https://github.com/mochajs/mocha/pull/2795): reverts use of semistandard directly ([#2648](https://github.com/mochajs/mocha/pull/2648)) ([@boneskull](https://github.com/boneskull))
761
762# 3.3.0 / 2017-04-24
763
764Thanks to all our contributors, maintainers, sponsors, and users! ❤️
765
766As highlights:
767
768- We've got coverage now!
769- Testing is looking less flaky \\o/.
770- No more nitpicking about "mocha.js" build on PRs.
771
772## :tada: Enhancements
773
774- [#2659](https://github.com/mochajs/mocha/pull/2659): Adds support for loading reporter from an absolute or relative path ([@sul4bh](https://github.com/sul4bh))
775- [#2769](https://github.com/mochajs/mocha/pull/2769): Support `--inspect-brk` on command-line ([@igwejk](https://github.com/igwejk))
776
777## :bug: Fixes
778
779- [#2662](https://github.com/mochajs/mocha/pull/2662): Replace unicode chars w/ hex codes in HTML reporter ([@rotemdan](https://github.com/rotemdan))
780
781## :mag: Coverage
782
783- [#2672](https://github.com/mochajs/mocha/pull/2672): Add coverage for node tests ([@c089](https://github.com/c089), [@Munter](https://github.com/munter))
784- [#2680](https://github.com/mochajs/mocha/pull/2680): Increase tests coverage for base reporter ([@epallerols](https://github.com/epallerols))
785- [#2690](https://github.com/mochajs/mocha/pull/2690): Increase tests coverage for doc reporter ([@craigtaub](https://github.com/craigtaub))
786- [#2701](https://github.com/mochajs/mocha/pull/2701): Increase tests coverage for landing, min, tap and list reporters ([@craigtaub](https://github.com/craigtaub))
787- [#2691](https://github.com/mochajs/mocha/pull/2691): Increase tests coverage for spec + dot reporters ([@craigtaub](https://github.com/craigtaub))
788- [#2698](https://github.com/mochajs/mocha/pull/2698): Increase tests coverage for xunit reporter ([@craigtaub](https://github.com/craigtaub))
789- [#2699](https://github.com/mochajs/mocha/pull/2699): Increase tests coverage for json-stream, markdown and progress reporters ([@craigtaub](https://github.com/craigtaub))
790- [#2703](https://github.com/mochajs/mocha/pull/2703): Cover .some() function in utils.js with tests ([@seppevs](https://github.com/seppevs))
791- [#2773](https://github.com/mochajs/mocha/pull/2773): Add tests for loading reporters w/ relative/absolute paths ([@sul4bh](https://github.com/sul4bh))
792
793## :nut_and_bolt: Other
794
795- Remove bin/.eslintrc; ensure execs are linted ([@boneskull](https://github.com/boneskull))
796- [#2542](https://github.com/mochajs/mocha/issues/2542): Expand CONTRIBUTING.md ([@boneskull](https://github.com/boneskull))
797- [#2660](https://github.com/mochajs/mocha/pull/2660): Double timeouts on integration tests ([@Munter](https://github.com/munter))
798- [#2653](https://github.com/mochajs/mocha/pull/2653): Update copyright year ([@Scottkao85], [@Munter](https://github.com/munter))
799- [#2621](https://github.com/mochajs/mocha/pull/2621): Update dependencies to enable Greenkeeper ([@boneskull](https://github.com/boneskull), [@greenkeeper](https://github.com/greenkeeper))
800- [#2625](https://github.com/mochajs/mocha/pull/2625): Use trusty container in travis-ci; use "artifacts" addon ([@boneskull](https://github.com/boneskull))
801- [#2670](https://github.com/mochajs/mocha/pull/2670): doc(CONTRIBUTING): fix link to org members ([@coderbyheart](https://github.com/coderbyheart))
802- Add Mocha propaganda to README.md ([@boneskull](https://github.com/boneskull))
803- [#2470](https://github.com/mochajs/mocha/pull/2470): Avoid test flake in "delay" test ([@boneskull](https://github.com/boneskull))
804- [#2675](https://github.com/mochajs/mocha/pull/2675): Limit browser concurrency on sauce ([@boneskull](https://github.com/boneskull))
805- [#2669](https://github.com/mochajs/mocha/pull/2669): Use temporary test-only build of mocha.js for browsers tests ([@Munter](https://github.com/munter))
806- Fix "projects" link in README.md ([@boneskull](https://github.com/boneskull))
807- [#2678](https://github.com/mochajs/mocha/pull/2678): Chore(Saucelabs): test on IE9, IE10 and IE11 ([@coderbyheart](https://github.com/coderbyheart))
808- [#2648](https://github.com/mochajs/mocha/pull/2648): Use `semistandard` directly ([@kt3k](https://github.com/kt3k))
809- [#2727](https://github.com/mochajs/mocha/pull/2727): Make the build reproducible ([@lamby](https://github.com/lamby))
810
811# 3.2.0 / 2016-11-24
812
813## :newspaper: News
814
815### Mocha is now a JS Foundation Project!
816
817Mocha is proud to have joined the [JS Foundation](https://js.foundation). For more information, [read the announcement](https://js.foundation/announcements/2016/10/17/Linux-Foundation-Unites-JavaScript-Community-Open-Web-Development/).
818
819### Contributor License Agreement
820
821Under the foundation, all contributors to Mocha must sign the [JS Foundation CLA](https://js.foundation/CLA/) before their code can be merged. When sending a PR--if you have not already signed the CLA--a friendly bot will ask you to do so.
822
823Mocha remains licensed under the [MIT license](https://github.com/mochajs/mocha/blob/master/LICENSE).
824
825## :bug: Bug Fix
826
827- [#2535](https://github.com/mochajs/mocha/issues/2535): Fix crash when `--watch` encounters broken symlinks ([@villesau](https://github.com/villesau))
828- [#2593](https://github.com/mochajs/mocha/pull/2593): Fix (old) regression; incorrect symbol shown in `list` reporter ([@Aldaviva](https://github.com/Aldaviva))
829- [#2584](https://github.com/mochajs/mocha/issues/2584): Fix potential error when running XUnit reporter ([@vobujs](https://github.com/vobujs))
830
831## :tada: Enhancement
832
833- [#2294](https://github.com/mochajs/mocha/issues/2294): Improve timeout error messaging ([@jeversmann](https://github.com/jeversmann), [@boneskull](https://github.com/boneskull))
834- [#2520](https://github.com/mochajs/mocha/pull/2520): Add info about `--inspect` flag to CLI help ([@ughitsaaron](https://github.com/ughitsaaron))
835
836## :nut_and_bolt: Other
837
838- [#2570](https://github.com/mochajs/mocha/issues/2570): Use [karma-mocha](https://npmjs.com/package/karma-mocha) proper ([@boneskull](https://github.com/boneskull))
839- Licenses updated to reflect new copyright, add link to license and browser matrix to `README.md` ([@boneskull](https://github.com/boneskull), [@ScottFreeCode](https://github.com/ScottFreeCode), [@dasilvacontin](https://github.com/dasilvacontin))
840
841Thanks to all our contributors, sponsors and backers! Keep on the lookout for a public roadmap and new contribution guide coming soon.
842
843# 3.1.2 / 2016-10-10
844
845## :bug: Bug Fix
846
847- [#2528](https://github.com/mochajs/mocha/issues/2528): Recovery gracefully if an `Error`'s `stack` property isn't writable ([@boneskull](https://github.com/boneskull))
848
849# 3.1.1 / 2016-10-09
850
851## :bug: Bug Fix
852
853- [#1417](https://github.com/mochajs/mocha/issues/1417): Don't report `done()` was called multiple times when it wasn't ([@frankleonrose](https://github.com/frankleonrose))
854
855## :nut_and_bolt: Other
856
857- [#2490](https://github.com/mochajs/mocha/issues/2490): Lint with [semistandard](https://npmjs.com/package/semistandard) config ([@makepanic](https://github.com/makepanic))
858- [#2525](https://github.com/mochajs/mocha/issues/2525): Lint all `.js` files ([@boneskull](https://github.com/boneskull))
859- [#2524](https://github.com/mochajs/mocha/issues/2524): Provide workaround for developers unable to run browser tests on macOS Sierra ([@boneskull](https://github.com/boneskull))
860
861# 3.1.0 / 2016-09-27
862
863## :tada: Enhancement
864
865- [#2357](https://github.com/mochajs/mocha/issues/2357): Support `--inspect` on command-line ([@simov](https://github.com/simov))
866- [#2194](https://github.com/mochajs/mocha/issues/2194): Human-friendly error if no files are matched on command-line ([@Munter](https://github.com/munter))
867- [#1744](https://github.com/mochajs/mocha/issues/1744): Human-friendly error if a Suite has no callback (BDD/TDD only) ([@anton](https://github.com/anton))
868
869## :bug: Bug Fix
870
871- [#2488](https://github.com/mochajs/mocha/issues/2488): Fix case in which _variables beginning with lowercase "D"_ may not have been reported properly as global leaks ([@JustATrick](https://github.com/JustATrick)) :laughing:
872- [#2465](https://github.com/mochajs/mocha/issues/2465): Always halt execution in async function when `this.skip()` is called ([@boneskull](https://github.com/boneskull))
873- [#2445](https://github.com/mochajs/mocha/pull/2445): Exits with expected code 130 when `SIGINT` encountered; exit code can no longer rollover at 256 ([@Munter](https://github.com/munter))
874- [#2315](https://github.com/mochajs/mocha/issues/2315): Fix uncaught TypeError thrown from callback stack ([@1999](https://github.com/1999))
875- Fix broken `only()`/`skip()` in IE7/IE8 ([@boneskull](https://github.com/boneskull))
876- [#2502](https://github.com/mochajs/mocha/issues/2502): Fix broken stack trace filter on Node.js under Windows ([@boneskull](https://github.com/boneskull))
877- [#2496](https://github.com/mochajs/mocha/issues/2496): Fix diff output for objects instantiated with `String` constructor ([more](https://youtrack.jetbrains.com/issue/WEB-23383)) ([@boneskull](https://github.com/boneskull))
878
879# 3.0.2 / 2016-08-08
880
881## :bug: Bug Fix
882
883- [#2424](https://github.com/mochajs/mocha/issues/2424): Fix error loading Mocha via Require.js ([@boneskull](https://github.com/boneskull))
884- [#2417](https://github.com/mochajs/mocha/issues/2417): Fix execution of _deeply_ nested `describe.only()` suites ([@not-an-aardvark](https://github.com/not-an-aardvark))
885- Remove references to `json-cov` and `html-cov` reporters in CLI ([@boneskull](https://github.com/boneskull))
886
887# 3.0.1 / 2016-08-03
888
889## :bug: Bug Fix
890
891- [#2406](https://github.com/mochajs/mocha/issues/2406): Restore execution of nested `describe.only()` suites ([@not-an-aardvark](https://github.com/not-an-aardvark))
892
893# 3.0.0 / 2016-07-31
894
895## :boom: Breaking Changes
896
897- :warning: Due to the increasing difficulty of applying security patches made within its dependency tree, as well as looming incompatibilities with Node.js v7.0, **Mocha no longer supports Node.js v0.8**.
898
899- :warning: **Mocha may no longer be installed by versions of `npm` less than `1.4.0`.** Previously, this requirement only affected Mocha's development dependencies. In short, this allows Mocha to depend on packages which have dependencies fixed to major versions (`^`).
900
901- `.only()` is no longer "fuzzy", can be used multiple times, and generally just works like you think it should. :joy:
902
903- To avoid common bugs, when a test injects a callback function (suggesting asynchronous execution), calls it, _and_ returns a `Promise`, Mocha will now throw an exception:
904
905 \```js
906 const assert = require('assert');
907
908 it('should complete this test', function (done) {
909 return new Promise(function (resolve) {
910 assert.ok(true);
911 resolve();
912 })
913 .then(done);
914 });
915 \```
916
917 The above test will fail with `Error: Resolution method is overspecified. Specify a callback *or* return a Promise; not both.`.
918
919- When a test timeout value _greater than_ `2147483648` is specified in any context (`--timeout`, `mocha.setup()`, per-suite, per-test, etc.), the timeout will be _disabled_ and the test(s) will be allowed to run indefinitely. This is equivalent to specifying a timeout value of `0`. See [MDN](https://developer.mozilla.org/docs/Web/API/WindowTimers/setTimeout#Maximum_delay_value) for reasoning.
920
921- The `dot` reporter now uses more visually distinctive characters when indicating "pending" and "failed" tests.
922
923- Mocha no longer supports [component](https://www.npmjs.com/package/component).
924
925- The long-forsaken `HTMLCov` and `JSONCov` reporters--and any relationship to the "node-jscoverage" project--have been removed.
926
927- `spec` reporter now omits leading carriage returns (`\r`) in non-TTY environment.
928
929## :tada: Enhancements
930
931- [#808](https://github.com/mochajs/mocha/issues/808): Allow regular-expression-like strings in `--grep` and browser's `grep` querystring; enables flags such as `i` for case-insensitive matches and `u` for unicode. ([@a8m](https://github.com/a8m))
932- [#2000](https://github.com/mochajs/mocha/pull/2000): Use distinctive characters in `dot` reporter; `,` will denote a "pending" test and `!` will denote a "failing" test. ([@elliottcable](https://github.com/elliottcable))
933- [#1632](https://github.com/mochajs/mocha/issues/1632): Throw a useful exception when a suite or test lacks a title. ([@a8m](https://github.com/a8m))
934- [#1481](https://github.com/mochajs/mocha/issues/1481): Better `.only()` behavior. ([@a8m](https://github.com/a8m))
935- [#2334](https://github.com/mochajs/mocha/issues/2334): Allow `this.skip()` in async tests and hooks. ([@boneskull](https://github.com/boneskull))
936- [#1320](https://github.com/mochajs/mocha/pull/1320): Throw a useful exception when test resolution method is overspecified. ([@jugglinmike](https://github.com/jugglinmike))
937- [#2364](https://github.com/mochajs/mocha/pull/2364): Support `--preserve-symlinks`. ([@rosswarren](https://github.com/rosswarren))
938
939## :bug: Bug Fixes
940
941- [#2259](https://github.com/mochajs/mocha/pull/2259): Restore ES3 compatibility. Specifically, support an environment lacking `Date.prototype.toISOString()`, `JSON`, or has a non-standard implementation of `JSON`. ([@ndhoule](https://github.com/ndhoule), [@boneskull](https://github.com/boneskull))
942- [#2286](https://github.com/mochajs/mocha/issues/2286): Fix `after()` failing to execute if test skipped using `this.skip()` in `beforeEach()`; no longer marks the entire suite as "pending". ([@dasilvacontin](https://github.com/dasilvacontin), [@boneskull](https://github.com/boneskull))
943- [#2208](https://github.com/mochajs/mocha/pull/2208): Fix function name display in `markdown` and `html` (browser) reporters. ([@ScottFreeCode](https://github.com/ScottFreeCode))
944- [#2299](https://github.com/mochajs/mocha/pull/2299): Fix progress bar in `html` (browser) reporter. ([@AviVahl](https://github.com/avivahl))
945- [#2307](https://github.com/mochajs/mocha/pull/2307): Fix `doc` reporter crashing when test fails. ([@jleyba](https://github.com/jleyba))
946- [#2323](https://github.com/mochajs/mocha/issues/2323): Ensure browser entry point (`browser-entry.js`) is published to npm (for use with bundlers). ([@boneskull](https://github.com/boneskull))
947- [#2310](https://github.com/mochajs/mocha/issues/2310): Ensure custom reporter with an absolute path works in Windows. ([@silentcloud](https://github.com/silentcloud))
948- [#2311](https://github.com/mochajs/mocha/issues/2311): Fix problem wherein calling `this.slow()` without a value would blast any previously set value. ([@boneskull](https://github.com/boneskull))
949- [#1813](https://github.com/mochajs/mocha/issues/1813): Ensure Mocha's own test suite will run in Windows. ([@tswaters](https://github.com/tswaters), [@TimothyGu](https://github.com/timothygu), [@boneskull](https://github.com/boneskull))
950- [#2317](https://github.com/mochajs/mocha/issues/2317): Ensure all interfaces are displayed in `--help` on CLI. ([@ScottFreeCode](https://github.com/ScottFreeCode))
951- [#1644](https://github.com/mochajs/mocha/issues/1644): Don't exhibit undefined behavior when calling `this.timeout()` with very large values ([@callumacrae](https://github.com/callumacrae), [@boneskull](https://github.com/boneskull))
952- [#2361](https://github.com/mochajs/mocha/pull/2361): Don't truncate name of thrown anonymous exception. ([@boneskull](https://github.com/boneskull))
953- [#2367](https://github.com/mochajs/mocha/pull/2367): Fix invalid CSS. ([@bensontrent](https://github.com/bensontrent))
954- [#2401](https://github.com/mochajs/mocha/pull/2401): Remove carriage return before each test line in spec reporter. ([@Munter](https://github.com/munter))
955
956## :nut_and_bolt: Other
957
958- Upgrade production dependencies to address security advisories (and because now we can): `glob`, `commander`, `escape-string-regexp`, and `supports-color`. ([@boneskull](https://github.com/boneskull), [@RobLoach](https://github.com/robloach))
959- Add Windows to CI. ([@boneskull](https://github.com/boneskull), [@TimothyGu](https://github.com/timothygu))
960- Ensure appropriate `engines` field in `package.json`. ([@shinnn](https://github.com/shinnn), [@boneskull](https://github.com/boneskull))
961- [#2348](https://github.com/mochajs/mocha/issues/2348): Upgrade ESLint to v2 ([@anthony-redfox](https://github.com/anthony-redfox))
962
963We :heart: our [backers and sponsors](https://opencollective.com/mochajs)!
964
965:shipit:
966
967# 2.5.3 / 2016-05-25
968
969- [#2112](https://github.com/mochajs/mocha/pull/2112) - Fix HTML reporter regression causing duplicate error output ([@danielstjules](https://github.com/danielstjules) via [`6d24063`](https://github.com/mochajs/mocha/commit/6d24063))
970- [#2119](https://github.com/mochajs/mocha/pull/2119) - Make HTML reporter failure/passed links preventDefault to avoid SPA's hash navigation ([@jimenglish81](https://github.com/jimenglish81) via [`9e93efc`](https://github.com/mochajs/mocha/commit/9e93efc))
971
972# 2.5.2 / 2016-05-24
973
974- [#2178](https://github.com/mochajs/mocha/pull/2178) - Avoid double and triple xUnit XML escaping ([@graingert](https://github.com/graingert) via [`49b5ff1`](https://github.com/mochajs/mocha/commit/49b5ff1))
975
976# 2.5.1 / 2016-05-23
977
978- Fix [to-iso-string](https://npmjs.com/package/to-iso-string) dependency ([@boneskull](https://github.com/boneskull) via [`bd9450b`](https://github.com/mochajs/mocha/commit/bd9450b))
979
980Thanks [**@entertainyou**](https://github.com/entertainyou), [**@SimenB**](https://github.com/SimenB), [**@just-paja**](https://github.com/just-paja) for the heads-up.
981
982# 2.5.0 / 2016-05-23
983
984This has been awhile coming! We needed to feel confident that the next release wouldn't break browser compatibility (e.g. the last few patch releases).
985
986## Browser Tests in CI
987
988We now run unit tests against PhantomJS v1.x and an assortment of browsers on [SauceLabs](https://saucelabs.com), including:
989
990- Internet Explorer v8.0
991- Chrome (latest)
992- Firefox (latest)
993- Safari (latest)
994- Microsoft Edge (latest)
995
996To accomplish this, we now run Mocha's unit tests (and a handful of integration tests) via [Karma](https://npmjs.com/package/karma) and a modified [karma-mocha](https://npmjs.com/package/karma-mocha). Along the way, we had to solve issue [#880](https://github.com/mochajs/mocha/issues/880) (apologies to [**@mderijcke**](https://github.com/mderijcke) and [**@sukima**](https://github.com/sukima) who had PRs addressing this), as well as replace most usages of [should](https://npmjs.com/package/should) with [expect.js](https://npmjs.com/package/expect.js) for IE8.
997
998Going forward, when sending PRs, your code will _only_ run against PhantomJS v1.x (and not hit SauceLabs) [because security](https://docs.travis-ci.com/user/pull-requests/#Security-Restrictions-when-testing-Pull-Requests).
999
1000## Node.js 6.x
1001
1002Node.js 6.x "just worked" before, but now it's in the CI matrix, so it's "officially" supported. Mocha _still retains support_ for Node.js 0.8.x.
1003
1004## "Minor" Release
1005
1006You'll see mostly bug fixes below, but also a couple features--as such, it's a "minor" release.
1007
1008## TYVM
1009
1010Thanks to everyone who contributed, and our fabulous [sponsors and backers](https://opencollective.com/mochajs)!
1011
1012- [#2079](https://github.com/mochajs/mocha/issues/2079) - Add browser checks to CI; update [browserify](https://npmjs.com/package/browserify) to v13.0.0 ([@dasilvacontin](https://github.com/dasilvacontin), [@ScottFreeCode](https://github.com/ScottFreeCode), [@boneskull](https://github.com/boneskull) via [`c04c1d7`](https://github.com/mochajs/mocha/commit/c04c1d7), [`0b1e9b3`](https://github.com/mochajs/mocha/commit/0b1e9b3), [`0dde0fa`](https://github.com/mochajs/mocha/commit/0dde0fa), [`f8a3d86`](https://github.com/mochajs/mocha/commit/f8a3d86), [`9e8cbaa`](https://github.com/mochajs/mocha/commit/9e8cbaa))
1013- [#880](https://github.com/mochajs/mocha/issues/880) - Make Mocha browserifyable ([@boneskull](https://github.com/boneskull) via [`524862b`](https://github.com/mochajs/mocha/commit/524862b))
1014- [#2121](https://github.com/mochajs/mocha/issues/2121) - Update [glob](https://npmjs.com/package/glob) to v3.2.11 ([@astorije](https://github.com/astorije) via [`7920fc4`](https://github.com/mochajs/mocha/commit/7920fc4))
1015- [#2126](https://github.com/mochajs/mocha/issues/2126) - Fix dupe error messages in stack trace filter ([@Turbo87](https://github.com/Turbo87) via [`4301caa`](https://github.com/mochajs/mocha/commit/4301caa))
1016- [#2109](https://github.com/mochajs/mocha/issues/2109) - Fix certain diffs when objects cannot be coerced into primitives ([@joshlory](https://github.com/joshlory) via [`61fbb7f`](https://github.com/mochajs/mocha/commit/61fbb7f))
1017- [#1827](https://github.com/mochajs/mocha/pull/1827) - Fix TWBS/`mocha.css` collisions ([@irnc](https://github.com/irnc) via [`0543798`](https://github.com/mochajs/mocha/commit/0543798))
1018- [#1760](https://github.com/mochajs/mocha/issues/1760), [#1936](https://github.com/mochajs/mocha/issues/1936) - Fix `this.skip()` in HTML reporter ([@mislav](https://github.com/mislav) via [`cb4248b`](https://github.com/mochajs/mocha/commit/cb4248b))
1019- [#2115](https://github.com/mochajs/mocha/pull/2115) - Fix exceptions thrown from hooks in HTML reporter ([@danielstjules](https://github.com/danielstjules) via [`e290bc0`](https://github.com/mochajs/mocha/commit/e290bc0))
1020- [#2089](https://github.com/mochajs/mocha/issues/2089) - Handle Symbol values in `util.stringify()` ([@ryym](https://github.com/ryym) via [`ea61d05`](https://github.com/mochajs/mocha/commit/ea61d05))
1021- [#2097](https://github.com/mochajs/mocha/pull/2097) - Fix diff for objects overriding `Object.prototype.hasOwnProperty` ([@mantoni](https://github.com/mantoni) via [`b20fdfe`](https://github.com/mochajs/mocha/commit/b20fdfe))
1022- [#2101](https://github.com/mochajs/mocha/pull/2101) - Properly handle non-string "messages" thrown from assertion libraries ([@jkimbo](https://github.com/jkimbo) via [`9c41051`](https://github.com/mochajs/mocha/commit/9c41051))
1023- [#2124](https://github.com/mochajs/mocha/pull/2124) - Update [growl](https://npmjs.com/package/growl) ([@benjamine](https://github.com/benjamine) via [`9ae6a85`](https://github.com/mochajs/mocha/commit/9ae6a85))
1024- [#2162](https://github.com/mochajs/mocha/pull/2162), [#2205](https://github.com/mochajs/mocha/pull/2205) - JSDoc fixes ([@OlegTsyba](https://github.com/OlegTsyba) via [`8031f20`](https://github.com/mochajs/mocha/commit/8031f20), [@ScottFreeCode](https://github.com/ScottFreeCode) via [`f83b1d9`](https://github.com/mochajs/mocha/commit/f83b1d9))
1025- [#2132](https://github.com/mochajs/mocha/issues/2132) - Remove Growl-related cruft ([@julienw](https://github.com/julienw) via [`00d6469`](https://github.com/mochajs/mocha/commit/00d6469))
1026- [#2172](https://github.com/mochajs/mocha/pull/2172) - Add [OpenCollective](https://opencollective.com) badge, sponsors & backers ([@xdamman](https://github.com/xdamman), [@boneskull](https://github.com/boneskull) via [`caee94f`](https://github.com/mochajs/mocha/commit/caee94f))
1027- [#1841](https://github.com/mochajs/mocha/pull/1841) - Add new logo, banner assets ([@dasilvacontin](https://github.com/dasilvacontin) via [`00fd0e1`](https://github.com/mochajs/mocha/commit/00fd0e1))
1028- [#2214](https://github.com/mochajs/mocha/pull/2214) - Update `README.md` header ([@dasilvacontin](https://github.com/dasilvacontin) via [`c0f9be2`](https://github.com/mochajs/mocha/commit/c0f9be2))
1029- [#2236](https://github.com/mochajs/mocha/pull/2236) - Better checks for Node.js v0.8 compatibility in CI ([@dasilvacontin](https://github.com/dasilvacontin) via [`ba5637d`](https://github.com/mochajs/mocha/commit/ba5637d))
1030- [#2239](https://github.com/mochajs/mocha/issues/2239) - Add Node.js v6.x to CI matrix ([@boneskull](https://github.com/boneskull) via [`3904da4`](https://github.com/mochajs/mocha/commit/3904da4))
1031
1032# 2.4.5 / 2016-01-28
1033
1034- [#2080](https://github.com/mochajs/mocha/issues/2080), [#2078](https://github.com/mochajs/mocha/issues/2078), [#2072](https://github.com/mochajs/mocha/pull/2072), [#2073](https://github.com/mochajs/mocha/pull/2073), [#1200](https://github.com/mochajs/mocha/issues/1200) - Revert changes to console colors in changeset [1192914](https://github.com/mochajs/mocha/commit/119291449cd03a11cdeda9e37cf718a69a012896) and subsequent related changes thereafter. Restores compatibility with IE8 & PhantomJS. See also [mantoni/mochify.js#129](https://github.com/mantoni/mochify.js/issues/129) and [openlayers/ol3#4746](https://github.com/openlayers/ol3/pull/4746) ([@boneskull](https://github.com/boneskull))
1035- [#2082](https://github.com/mochajs/mocha/pull/2082) - Fix several test assertions ([@mislav](https://github.com/mislav))
1036
1037# 2.4.4 / 2016-01-27
1038
1039- [#2080](https://github.com/mochajs/mocha/issues/2080) - Fix broken RequireJS compatibility ([@boneskull](https://github.com/boneskull))
1040
1041# 2.4.3 / 2016-01-27
1042
1043- [#2078](https://github.com/mochajs/mocha/issues/2078) - Fix broken IE8 ([@boneskull](https://github.com/boneskull))
1044
1045# 2.4.2 / 2016-01-26
1046
1047- [#2053](https://github.com/mochajs/mocha/pull/2053) - Fix web worker compatibility ([@mislav](https://github.com/mislav))
1048- [#2072](https://github.com/mochajs/mocha/pull/2072) - Fix Windows color output ([@thedark1337](https://github.com/thedark1337))
1049- [#2073](https://github.com/mochajs/mocha/pull/2073) - Fix colors in `progress` and `landing` reporters ([@gyandeeps](https://github.com/gyandeeps))
1050
1051# 2.4.1 / 2016-01-26
1052
1053- [#2067](https://github.com/mochajs/mocha/pull/2067) - Fix HTML/doc reporter regressions ([@danielstjules](https://github.com/danielstjules))
1054
1055# 2.4.0 / 2016-01-25
1056
1057- [#1945](https://github.com/mochajs/mocha/pull/1945) - Correctly skip tests when skipping in suite's before() ([@ryanshawty](https://github.com/ryanshawty))
1058- [#2056](https://github.com/mochajs/mocha/pull/2056) - chore(license): update license year to 2016 ([@pra85](https://github.com/pra85))
1059- [#2048](https://github.com/mochajs/mocha/pull/2048) - Fix `this.skip` from spec with HTML reporter ([@mislav](https://github.com/mislav))
1060- [#2033](https://github.com/mochajs/mocha/pull/2033) - Update tests for newer versions of should.js ([@tomhughes](https://github.com/tomhughes))
1061- [#2037](https://github.com/mochajs/mocha/pull/2037) - Fix for memory leak caused by referenced to deferred test ([@bd82](https://github.com/bd82))
1062- [#2038](https://github.com/mochajs/mocha/pull/2038) - Also run Travis-CI on node.js 4 & 5 ([@bd82](https://github.com/bd82))
1063- [#2028](https://github.com/mochajs/mocha/pull/2028) - Remove reference to test before afterAll hook runs ([@stonelgh](https://github.com/stonelgh))
1064- Bump mkdirp to 0.5.1 to support strict mode ([@danielstjules](https://github.com/danielstjules))
1065- [#1977](https://github.com/mochajs/mocha/pull/1977) - safely stringify PhantomJS undefined value ([@ahamid](https://github.com/ahamid))
1066- Add the ability to retry tests ([@@longlho])
1067- [#1982](https://github.com/mochajs/mocha/pull/1982) - Enable --log-timer-events option [@Alaneor](https://github.com/Alaneor)
1068- Fix [#1980](https://github.com/mochajs/mocha/issues/1980): Load mocha.opts from bin/mocha and bin/\_mocha ([@danielstjules](https://github.com/danielstjules))
1069- [#1976](https://github.com/mochajs/mocha/pull/1976) - Simplify function call ([@iclanzan](https://github.com/iclanzan))
1070- [#1963](https://github.com/mochajs/mocha/pull/1963) - Add support --perf-basic-prof ([@robraux](https://github.com/robraux))
1071- [#1981](https://github.com/mochajs/mocha/pull/1981) - Fix HTML reporter handling of done and exceptions ([@Standard8](https://github.com/Standard8))
1072- [#1993](https://github.com/mochajs/mocha/pull/1993) - propagate "file" property for "exports" interface ([@segrey](https://github.com/segrey))
1073- [#1999](https://github.com/mochajs/mocha/pull/1999) - Add support for strict mode ([@tmont](https://github.com/tmont))
1074- [#2005](https://github.com/mochajs/mocha/pull/2005) - XUnit Reporter Writes to stdout, falls back to console.log ([@jonnyreeves](https://github.com/jonnyreeves))
1075- [#2021](https://github.com/mochajs/mocha/pull/2021) - Fix non ES5 compliant regexp ([@zetaben](https://github.com/zetaben))
1076- [#1965] - Don't double install BDD UI ([@cowboyd](https://github.com/cowboyd))
1077- [#1995](https://github.com/mochajs/mocha/pull/1995) - Make sure the xunit output dir exists before writing to it ([@ianwremmel](https://github.com/ianwremmel))
1078- Use chalk for the base reporter colors; closes [#1200](https://github.com/mochajs/mocha/issues/1200) ([@boneskull](https://github.com/boneskull))
1079- Fix requiring custom interfaces ([@jgkim](https://github.com/jgkim))
1080- [#1967](https://github.com/mochajs/mocha/pull/1967) Silence Bluebird js warnings ([@krisr](https://github.com/krisr))
1081
1082# 2.3.4 / 2015-11-15
1083
1084- Update debug dependency to 2.2.0
1085- remove duplication of mocha.opts on process.argv
1086- Fix typo in test/reporters/nyan.js
1087
1088# 2.3.3 / 2015-09-19
1089
1090- [#1875](https://github.com/mochajs/mocha/issues/1875) - Fix Markdown reporter exceeds maximum call stack size ([@danielstjules](https://github.com/danielstjules))
1091- [#1864](https://github.com/mochajs/mocha/issues/1864) - Fix xunit missing output with --reporter-options output ([@danielstjules](https://github.com/danielstjules))
1092- [#1846](https://github.com/mochajs/mocha/issues/1846) - Support all harmony flags ([@danielstjules](https://github.com/danielstjules))
1093- Fix fragile xunit reporter spec ([@danielstjules](https://github.com/danielstjules))
1094- [#1669](https://github.com/mochajs/mocha/issues/1669) - Fix catch uncaught errors outside test suite execution ([@danielstjules](https://github.com/danielstjules))
1095- [#1868](https://github.com/mochajs/mocha/issues/1868) - Revert jade to support npm < v1.3.7 ([@danielstjules](https://github.com/danielstjules))
1096- [#1766](https://github.com/mochajs/mocha/issues/1766) - Don't remove modules/components from stack trace in the browser ([@danielstjules](https://github.com/danielstjules))
1097- [#1798](https://github.com/mochajs/mocha/issues/1798) - Fix correctly attribute mutiple done err with hooks ([@danielstjules](https://github.com/danielstjules))
1098- Fix use utils.reduce for IE8 compatibility ([@wsw0108](https://github.com/wsw0108))
1099- Some linting errors fixed by [@danielstjules](https://github.com/danielstjules)
1100- Call the inspect() function if message is not set ([@kevinburke](https://github.com/kevinburke))
1101
1102# 2.3.2 / 2015-09-07
1103
1104- [#1868](https://github.com/mochajs/mocha/issues/1868) - Fix compatibility with older versions of NPM ([@boneskull](https://github.com/boneskull))
1105
1106# 2.3.1 / 2015-09-06
1107
1108- [#1812](https://github.com/mochajs/mocha/issues/1812) - Fix: Bail flag causes before() hooks to be run even after a failure ([@aaroncrows])
1109
1110# 2.3.0 / 2015-08-30
1111
1112- [#553](https://github.com/mochajs/mocha/issues/553) - added --allowUncaught option ([@amsul](https://github.com/amsul))
1113- [#1490](https://github.com/mochajs/mocha/issues/1490) - Allow --async-only to be satisfied by returning a promise ([@jlai](https://github.com/jlai))
1114- [#1829](https://github.com/mochajs/mocha/issues/1829) - support --max-old-space-size ([@gigadude](https://github.com/gigadude))
1115- [#1811](https://github.com/mochajs/mocha/issues/1811) - upgrade Jade dependency ([@outsideris](https://github.com/outsideris))
1116- [#1769](https://github.com/mochajs/mocha/issues/1769) - Fix async hook error handling ([@ajaykodali](https://github.com/ajaykodali))
1117- [#1230](https://github.com/mochajs/mocha/issues/1230) - More descriptive beforeEach/afterEach messages ([@duncanbeevers](https://github.com/duncanbeevers))
1118- [#1787](https://github.com/mochajs/mocha/issues/1787) - Scope loading behaviour instead of using early return ([@aryeguy](https://github.com/aryeguy))
1119- [#1789](https://github.com/mochajs/mocha/issues/1789) - Fix: html-runner crashing ([@sunesimonsen](https://github.com/sunesimonsen))
1120- [#1749](https://github.com/mochajs/mocha/issues/1749) - Fix maximum call stack error on large amount of tests ([@tinganho](https://github.com/tinganho))
1121- [#1230](https://github.com/mochajs/mocha/issues/1230) - Decorate failed hook titles with test title ([@duncanbeevers](https://github.com/duncanbeevers))
1122- [#1260](https://github.com/mochajs/mocha/issues/1260) - Build using Browserify ([@ndhoule](https://github.com/ndhoule))
1123- [#1728](https://github.com/mochajs/mocha/issues/1728) - Don't use `__proto__` ([@ndhoule](https://github.com/ndhoule))
1124- [#1781](https://github.com/mochajs/mocha/issues/1781) - Fix hook error tests ([@glenjamin](https://github.com/glenjamin))
1125- [#1754](https://github.com/mochajs/mocha/issues/1754) - Allow boolean --reporter-options ([@papandreou](https://github.com/papandreou))
1126- [#1766](https://github.com/mochajs/mocha/issues/1766) - Fix overly aggressive stack suppression ([@moll](https://github.com/moll))
1127- [#1752](https://github.com/mochajs/mocha/issues/1752) - Avoid potential infinite loop ([@gsilk](https://github.com/gsilk))
1128- [#1761](https://github.com/mochajs/mocha/issues/1761) - Fix problems running under PhantomJS ([@chromakode](https://github.com/chromakode))
1129- [#1700](https://github.com/mochajs/mocha/issues/1700) - Fix more problems running under PhantomJS ([@jbnicolai](https://github.com/jbnicolai))
1130- [#1774](https://github.com/mochajs/mocha/issues/1774) - Support escaped spaces in CLI options ([@adamgruber](https://github.com/adamgruber))
1131- [#1687](https://github.com/mochajs/mocha/issues/1687) - Fix HTML reporter links with special chars ([@benvinegar](https://github.com/benvinegar))
1132- [#1359](https://github.com/mochajs/mocha/issues/1359) - Adopt code style and enforce it using ESLint ([@ndhoule](https://github.com/ndhoule) w/ assist from [@jbnicolai](https://github.com/jbnicolai) & [@boneskull](https://github.com/boneskull))
1133- various refactors ([@jbnicolai](https://github.com/jbnicolai))
1134- [#1758](https://github.com/mochajs/mocha/issues/1758) - Add cross-frame compatible Error checking ([@outdooricon](https://github.com/outdooricon))
1135- [#1741](https://github.com/mochajs/mocha/issues/1741) - Remove moot `version` property from bower.json ([@kkirsche](https://github.com/kkirsche))
1136- [#1739](https://github.com/mochajs/mocha/issues/1739) - Improve `HISTORY.md` ([@rstacruz](https://github.com/rstacruz))
1137- [#1730](https://github.com/mochajs/mocha/issues/1730) - Support more io.js flags ([@ryedog](https://github.com/ryedog))
1138- [#1349](https://github.com/mochajs/mocha/issues/1349) - Allow HTML in HTML reporter errors ([@papandreou](https://github.com/papandreou) / [@sunesimonsen](https://github.com/sunesimonsen))
1139- [#1572](https://github.com/mochajs/mocha/issues/1572) - Prevent default browser behavior for failure/pass links ([@jschilli](https://github.com/jschilli))
1140- [#1630](https://github.com/mochajs/mocha/issues/1630) - Support underscored harmony flags ([@dominicbarnes](https://github.com/dominicbarnes))
1141- [#1718](https://github.com/mochajs/mocha/issues/1718) - Support more harmony flags ([@slyg](https://github.com/slyg))
1142- [#1689](https://github.com/mochajs/mocha/issues/1689) - Add stack to JSON-stream reporter ([@jonathandelgado](https://github.com/jonathandelgado))
1143- [#1654](https://github.com/mochajs/mocha/issues/1654) - Fix `ReferenceError` "location is not defined" ([@jakemmarsh](https://github.com/jakemmarsh))
1144
1145# 2.2.5 / 2015-05-14
1146
1147- [#1699](https://github.com/mochajs/mocha/issues/1699) - Upgrade jsdiff to v1.4.0 ([@nylen](https://github.com/nylen))
1148- [#1648](https://github.com/mochajs/mocha/issues/1648) - fix diff background colors in the console ([@nylen](https://github.com/nylen))
1149- [#1327](https://github.com/mochajs/mocha/issues/1327) - fix tests running twice, a regression issue. ([#1686](https://github.com/mochajs/mocha/issues/1686), [@danielstjules](https://github.com/danielstjules))
1150- [#1675](https://github.com/mochajs/mocha/issues/1675) - add integration tests ([@danielstjules](https://github.com/danielstjules))
1151- [#1682](https://github.com/mochajs/mocha/issues/1682) - use a valid SPDX license identifier in package.json ([@kemitchell](https://github.com/kemitchell))
1152- [#1660](https://github.com/mochajs/mocha/issues/1660) - fix assertion of invalid dates ([#1661](https://github.com/mochajs/mocha/issues/1661), [@a8m](https://github.com/a8m))
1153- [#1241](https://github.com/mochajs/mocha/issues/1241) - fix issue with multiline diffs appearing as single line ([#1655](https://github.com/mochajs/mocha/issues/1655), [@a8m](https://github.com/a8m))
1154
1155# 2.2.4 / 2015-04-08
1156
1157- Load mocha.opts in \_mocha for now (close [#1645](https://github.com/mochajs/mocha/issues/1645))
1158
1159# 2.2.3 / 2015-04-07
1160
1161- fix(reporter/base): string diff - issue [#1241](https://github.com/mochajs/mocha/issues/1241)
1162- fix(reporter/base): string diff - issue [#1241](https://github.com/mochajs/mocha/issues/1241)
1163- fix(reporter/base): don't show diffs for errors without expectation
1164- fix(reporter/base): don't assume error message is first line of stack
1165- improve: dry up reporter/base test
1166- fix(reporter/base): explicitly ignore showDiff [#1614](https://github.com/mochajs/mocha/issues/1614)
1167- Add iojs to travis build
1168- Pass `--allow-natives-syntax` flag to node.
1169- Support --harmony_classes flag for io.js
1170- Fix 1556: Update utils.clean to handle newlines in func declarations
1171- Fix 1606: fix err handling in IE <= 8 and non-ES5 browsers
1172- Fix 1585: make \_mocha executable again
1173- chore(package.json): add a8m as a contributor
1174- Fixed broken link on html-cov reporter
1175- support --es_staging flag
1176- fix issue where menu overlaps content.
1177- update contributors in package.json
1178- Remove trailing whitespace from reporter output
1179- Remove contributors list from readme
1180- log third-party reporter errors
1181- [Fix] Exclude not own properties when looping on options
1182- fix: support node args in mocha.opts (close [#1573](https://github.com/mochajs/mocha/issues/1573))
1183- fix(reporter/base): string diff - issue [#1241](https://github.com/mochajs/mocha/issues/1241)
1184
1185# 2.2.1 / 2015-03-09
1186
1187- Fix passing of args intended for node/iojs.
1188
1189# 2.2.0 / 2015-03-06
1190
1191- Update mocha.js
1192- Add --fgrep. Use grep for RegExp, fgrep for str
1193- Ignore async global errors after spec resolution
1194- Fixing errors that prevent mocha.js from loading in the browser - fixes [#1558](https://github.com/mochajs/mocha/issues/1558)
1195- fix(utils): issue [#1558](https://github.com/mochajs/mocha/issues/1558) + make
1196- add ability to delay root suite; closes [#362](https://github.com/mochajs/mocha/issues/362), closes [#1124](https://github.com/mochajs/mocha/issues/1124)
1197- fix insanity in http tests
1198- update travis: add node 0.12, add gitter, remove slack
1199- building
1200- resolve [#1548](https://github.com/mochajs/mocha/issues/1548): ensure the environment's "node" executable is used
1201- reporters/base: use supports-color to detect colorable term
1202- travis: use docker containers
1203- small fix: commander option for --expose-gc
1204- Ignore asynchronous errors after global failure
1205- Improve error output when a test fails with a non-error
1206- updated travis badge, uses svg instead of img
1207- Allow skip from test context for [#332](https://github.com/mochajs/mocha/issues/332)
1208- [JSHINT] Unnecessary semicolon fixed in bin/\_mocha
1209- Added a reminder about the done() callback to test timeout error messages
1210- fixes [#1496](https://github.com/mochajs/mocha/issues/1496), in Mocha.run(fn), check if fn exists before executing it, added tests too
1211- Add Harmony Proxy flag for iojs
1212- test(utils|ms|\*): test existing units
1213- add support for some iojs flags
1214- fix(utils.stringify): issue [#1229](https://github.com/mochajs/mocha/issues/1229), diff viewer
1215- Remove slack link
1216- Prevent multiple 'grep=' querystring params in html reporter
1217- Use grep as regexp (close [#1381](https://github.com/mochajs/mocha/issues/1381))
1218- utils.stringify should handle objects without an Object prototype
1219- in runnable test, comparing to undefined error's message rather than a literal
1220- Fix test running output truncation on async STDIO
1221- amended for deprecated customFds option in child_process
1222
1223# 2.1.0 / 2014-12-23
1224
1225- showDiff: don’t stringify strings
1226- Clean up unused module dependencies.
1227- Filter zero-length strings from mocha.opts
1228- only write to stdout in reporters
1229- Revert "only write to stdout in reporters"
1230- Print colored output only to a tty
1231- update summary in README.md
1232- rename Readme.md/History.md to README.md/HISTORY.md because neurotic
1233- add .mailmap to fix "git shortlog" or "git summary" output
1234- fixes [#1461](https://github.com/mochajs/mocha/issues/1461): nyan-reporter now respects Base.useColors, fixed bug where Base.color would not return a string when str wasn't a string.
1235- Use existing test URL builder in failed replay links
1236- modify .travis.yml: use travis_retry; closes [#1449](https://github.com/mochajs/mocha/issues/1449)
1237- fix -t 0 behavior; closes [#1446](https://github.com/mochajs/mocha/issues/1446)
1238- fix tests (whoops)
1239- improve diff behavior
1240- Preserve pathname when linking to individual tests
1241- Fix test
1242- Tiny typo in comments fixed
1243- after hooks now being called on failed tests when using bail, fixes [#1093](https://github.com/mochajs/mocha/issues/1093)
1244- fix throwing undefined/null now makes tests fail, fixes [#1395](https://github.com/mochajs/mocha/issues/1395)
1245- compiler extensions are added as watched extensions, removed non-standard extensions from watch regex, resolves [#1221](https://github.com/mochajs/mocha/issues/1221)
1246- prefix/namespace for suite titles in markdown reporter, fixes [#554](https://github.com/mochajs/mocha/issues/554)
1247- fix more bad markdown in CONTRIBUTING.md
1248- fix bad markdown in CONTRIBUTING.md
1249- add setImmediate/clearImmediate to globals; closes [#1435](https://github.com/mochajs/mocha/issues/1435)
1250- Fix buffer diffs (closes [#1132](https://github.com/mochajs/mocha/issues/1132), closes [#1433](https://github.com/mochajs/mocha/issues/1433))
1251- add a CONTRIBUTING.md. closes [#882](https://github.com/mochajs/mocha/issues/882)
1252- fix intermittent build failures (maybe). closes [#1407](https://github.com/mochajs/mocha/issues/1407)
1253- add Slack notification to .travis.yml
1254- Fix slack link
1255- Add slack room to readme
1256- Update maintainers
1257- update maintainers and contributors
1258- resolves [#1393](https://github.com/mochajs/mocha/issues/1393): kill children with more effort on SIGINT
1259- xunit reporter support for optionally writing to a file
1260- if a reporter has a .done method, call it before exiting
1261- add support for reporter options
1262- only write to stdout in reporters
1263
1264# 2.0.0 / 2014-10-21
1265
1266- remove: support for node 0.6.x, 0.4.x
1267- fix: landing reporter with non ansi characters ([#211](https://github.com/mochajs/mocha/issues/211))
1268- fix: html reporter - preserve query params when navigating to suites/tests ([#1358](https://github.com/mochajs/mocha/issues/1358))
1269- fix: json stream reporter add error message to failed test
1270- fix: fixes for visionmedia -> mochajs
1271- fix: use stdio, fixes node deprecation warnings ([#1391](https://github.com/mochajs/mocha/issues/1391))
1272
1273# 1.21.5 / 2014-10-11
1274
1275- fix: build for NodeJS v0.6.x
1276- fix: do not attempt to highlight syntax when non-HTML reporter is used
1277- update: escape-string-regexp to 1.0.2.
1278- fix: botched indentation in canonicalize()
1279- fix: .gitignore: ignore .patch and .diff files
1280- fix: changed 'Catched' to 'Caught' in uncaught exception error handler messages
1281- add: `pending` field for json reporter
1282- fix: Runner.prototype.uncaught: don't double-end runnables that already have a state.
1283- fix: --recursive, broken by [`f0facd2`](https://github.com/mochajs/mocha/commit/f0facd2e)
1284- update: replaces escapeRegexp with the escape-string-regexp package.
1285- update: commander to 2.3.0.
1286- update: diff to 1.0.8.
1287- fix: ability to disable syntax highlighting ([#1329](https://github.com/mochajs/mocha/issues/1329))
1288- fix: added empty object to errorJSON() call to catch when no error is present
1289- fix: never time out after calling enableTimeouts(false)
1290- fix: timeout(0) will work at suite level ([#1300](https://github.com/mochajs/mocha/issues/1300))
1291- Fix for --watch+only() issue ([#888](https://github.com/mochajs/mocha/issues/888) )
1292- fix: respect err.showDiff, add Base reporter test ([#810](https://github.com/mochajs/mocha/issues/810))
1293
1294# 1.22.1-3 / 2014-07-27
1295
1296- fix: disabling timeouts with this.timeout(0) ([#1301](https://github.com/mochajs/mocha/issues/1301))
1297
1298# 1.22.1-3 / 2014-07-27
1299
1300- fix: local uis and reporters ([#1288](https://github.com/mochajs/mocha/issues/1288))
1301- fix: building 1.21.0's changes in the browser ([#1284](https://github.com/mochajs/mocha/issues/1284))
1302
1303# 1.21.0 / 2014-07-23
1304
1305- add: --no-timeouts option ([#1262](https://github.com/mochajs/mocha/issues/1262), [#1268](https://github.com/mochajs/mocha/issues/1268))
1306- add: --\*- deprecation node flags ([#1217](https://github.com/mochajs/mocha/issues/1217))
1307- add: --watch-extensions argument ([#1247](https://github.com/mochajs/mocha/issues/1247))
1308- change: spec reporter is default ([#1228](https://github.com/mochajs/mocha/issues/1228))
1309- fix: diff output showing incorrect +/- ([#1182](https://github.com/mochajs/mocha/issues/1182))
1310- fix: diffs of circular structures ([#1179](https://github.com/mochajs/mocha/issues/1179))
1311- fix: re-render the progress bar when progress has changed only ([#1151](https://github.com/mochajs/mocha/issues/1151))
1312- fix support for environments with global and window ([#1159](https://github.com/mochajs/mocha/issues/1159))
1313- fix: reverting to previously defined onerror handler ([#1178](https://github.com/mochajs/mocha/issues/1178))
1314- fix: stringify non error objects passed to done() ([#1270](https://github.com/mochajs/mocha/issues/1270))
1315- fix: using local ui, reporters ([#1267](https://github.com/mochajs/mocha/issues/1267))
1316- fix: cleaning es6 arrows ([#1176](https://github.com/mochajs/mocha/issues/1176))
1317- fix: don't include attrs in failure tag for xunit ([#1244](https://github.com/mochajs/mocha/issues/1244))
1318- fix: fail tests that return a promise if promise is rejected w/o a reason ([#1224](https://github.com/mochajs/mocha/issues/1224))
1319- fix: showing failed tests in doc reporter ([#1117](https://github.com/mochajs/mocha/issues/1117))
1320- fix: dot reporter dots being off ([#1204](https://github.com/mochajs/mocha/issues/1204))
1321- fix: catch empty throws ([#1219](https://github.com/mochajs/mocha/issues/1219))
1322- fix: honoring timeout for sync operations ([#1242](https://github.com/mochajs/mocha/issues/1242))
1323- update: growl to 1.8.0
1324
1325# 1.20.1 / 2014-06-03
1326
1327- update: should dev dependency to ~4.0.0 ([#1231](https://github.com/mochajs/mocha/issues/1231))
1328
1329# 1.20.0 / 2014-05-28
1330
1331- add: filenames to suite objects ([#1222](https://github.com/mochajs/mocha/issues/1222))
1332
1333# 1.19.0 / 2014-05-17
1334
1335- add: browser script option to package.json
1336- add: export file in Mocha.Test objects ([#1174](https://github.com/mochajs/mocha/issues/1174))
1337- add: add docs for wrapped node flags
1338- fix: mocha.run() to return error status in browser ([#1216](https://github.com/mochajs/mocha/issues/1216))
1339- fix: clean() to show failure details ([#1205](https://github.com/mochajs/mocha/issues/1205))
1340- fix: regex that generates html for new keyword ([#1201](https://github.com/mochajs/mocha/issues/1201))
1341- fix: sibling suites have inherited but separate contexts ([#1164](https://github.com/mochajs/mocha/issues/1164))
1342
1343# 1.18.2 / 2014-03-18
1344
1345- fix: html runner was prevented from using #mocha as the default root el ([#1162](https://github.com/mochajs/mocha/issues/1162))
1346
1347# 1.18.1 / 2014-03-18
1348
1349- fix: named before/after hooks in bdd, tdd, qunit interfaces ([#1161](https://github.com/mochajs/mocha/issues/1161))
1350
1351# 1.18.0 / 2014-03-13
1352
1353- add: promise support ([#329](https://github.com/mochajs/mocha/issues/329))
1354- add: named before/after hooks ([#966](https://github.com/mochajs/mocha/issues/966))
1355
1356# 1.17.1 / 2014-01-22
1357
1358- fix: expected messages in should.js (should.js#168)
1359- fix: expect errno global in node versions < v0.9.11 ([#1111](https://github.com/mochajs/mocha/issues/1111))
1360- fix: unreliable checkGlobals optimization ([#1110](https://github.com/mochajs/mocha/issues/1110))
1361
1362# 1.17.0 / 2014-01-09
1363
1364- add: able to require globals (describe, it, etc.) through mocha ([#1077](https://github.com/mochajs/mocha/issues/1077))
1365- fix: abort previous run on --watch change ([#1100](https://github.com/mochajs/mocha/issues/1100))
1366- fix: reset context for each --watch triggered run ([#1099](https://github.com/mochajs/mocha/issues/1099))
1367- fix: error when cli can't resolve path or pattern ([#799](https://github.com/mochajs/mocha/issues/799))
1368- fix: canonicalize objects before stringifying and diffing them ([#1079](https://github.com/mochajs/mocha/issues/1079))
1369- fix: make CR call behave like carriage return for non tty ([#1087](https://github.com/mochajs/mocha/issues/1087))
1370
1371# 1.16.2 / 2013-12-23
1372
1373- fix: couple issues with ie 8 ([#1082](https://github.com/mochajs/mocha/issues/1082), [#1081](https://github.com/mochajs/mocha/issues/1081))
1374- fix: issue running the xunit reporter in browsers ([#1068](https://github.com/mochajs/mocha/issues/1068))
1375- fix: issue with firefox < 3.5 ([#725](https://github.com/mochajs/mocha/issues/725))
1376
1377# 1.16.1 / 2013-12-19
1378
1379- fix: recompiled for missed changes from the last release
1380
1381# 1.16.0 / 2013-12-19
1382
1383- add: Runnable.globals(arr) for per test global whitelist ([#1046](https://github.com/mochajs/mocha/issues/1046))
1384- add: mocha.throwError(err) for assertion libs to call ([#985](https://github.com/mochajs/mocha/issues/985))
1385- remove: --watch's spinner ([#806](https://github.com/mochajs/mocha/issues/806))
1386- fix: duplicate test output for multi-line specs in spec reporter ([#1006](https://github.com/mochajs/mocha/issues/1006))
1387- fix: gracefully exit on SIGINT ([#1063](https://github.com/mochajs/mocha/issues/1063))
1388- fix expose the specified ui only in the browser ([#984](https://github.com/mochajs/mocha/issues/984))
1389- fix: ensure process exit code is preserved when using --no-exit ([#1059](https://github.com/mochajs/mocha/issues/1059))
1390- fix: return true from window.onerror handler ([#868](https://github.com/mochajs/mocha/issues/868))
1391- fix: xunit reporter to use process.stdout.write ([#1068](https://github.com/mochajs/mocha/issues/1068))
1392- fix: utils.clean(str) indentation ([#761](https://github.com/mochajs/mocha/issues/761))
1393- fix: xunit reporter returning test duration a NaN ([#1039](https://github.com/mochajs/mocha/issues/1039))
1394
1395# 1.15.1 / 2013-12-03
1396
1397- fix: recompiled for missed changes from the last release
1398
1399# 1.15.0 / 2013-12-02
1400
1401- add: `--no-exit` to prevent `process.exit()` ([#1018](https://github.com/mochajs/mocha/issues/1018))
1402- fix: using inline diffs ([#1044](https://github.com/mochajs/mocha/issues/1044))
1403- fix: show pending test details in xunit reporter ([#1051](https://github.com/mochajs/mocha/issues/1051))
1404- fix: faster global leak detection ([#1024](https://github.com/mochajs/mocha/issues/1024))
1405- fix: yui compression ([#1035](https://github.com/mochajs/mocha/issues/1035))
1406- fix: wrapping long lines in test results ([#1030](https://github.com/mochajs/mocha/issues/1030), [#1031](https://github.com/mochajs/mocha/issues/1031))
1407- fix: handle errors in hooks ([#1043](https://github.com/mochajs/mocha/issues/1043))
1408
1409# 1.14.0 / 2013-11-02
1410
1411- add: unified diff ([#862](https://github.com/mochajs/mocha/issues/862))
1412- add: set MOCHA_COLORS env var to use colors ([#965](https://github.com/mochajs/mocha/issues/965))
1413- add: able to override tests links in html reporters ([#776](https://github.com/mochajs/mocha/issues/776))
1414- remove: teamcity reporter ([#954](https://github.com/mochajs/mocha/issues/954))
1415- update: commander dependency to 2.0.0 ([#1010](https://github.com/mochajs/mocha/issues/1010))
1416- fix: mocha --ui will try to require the ui if not built in, as --reporter does ([#1022](https://github.com/mochajs/mocha/issues/1022))
1417- fix: send cursor commands only if isatty ([#184](https://github.com/mochajs/mocha/issues/184), [#1003](https://github.com/mochajs/mocha/issues/1003))
1418- fix: include assertion message in base reporter ([#993](https://github.com/mochajs/mocha/issues/993), [#991](https://github.com/mochajs/mocha/issues/991))
1419- fix: consistent return of it, it.only, and describe, describe.only ([#840](https://github.com/mochajs/mocha/issues/840))
1420
1421# 1.13.0 / 2013-09-15
1422
1423- add: sort test files with --sort ([#813](https://github.com/mochajs/mocha/issues/813))
1424- update: diff dependency to 1.0.7
1425- update: glob dependency to 3.2.3 ([#927](https://github.com/mochajs/mocha/issues/927))
1426- fix: diffs show whitespace differences ([#976](https://github.com/mochajs/mocha/issues/976))
1427- fix: improve global leaks ([#783](https://github.com/mochajs/mocha/issues/783))
1428- fix: firefox window.getInterface leak
1429- fix: accessing iframe via window[iframeIndex] leak
1430- fix: faster global leak checking
1431- fix: reporter pending css selector ([#970](https://github.com/mochajs/mocha/issues/970))
1432
1433# 1.12.1 / 2013-08-29
1434
1435- remove test.js from .gitignore
1436- update included version of ms.js
1437
1438# 1.12.0 / 2013-07-01
1439
1440- add: prevent diffs for differing types. Closes [#900](https://github.com/mochajs/mocha/issues/900)
1441- add `Mocha.process` hack for phantomjs
1442- fix: use compilers with requires
1443- fix regexps in diffs. Closes [#890](https://github.com/mochajs/mocha/issues/890)
1444- fix xunit NaN on failure. Closes [#894](https://github.com/mochajs/mocha/issues/894)
1445- fix: strip tab indentation in `clean` utility method
1446- fix: textmate bundle installation
1447
1448# 1.11.0 / 2013-06-12
1449
1450- add --prof support
1451- add --harmony support
1452- add --harmony-generators support
1453- add "Uncaught " prefix to uncaught exceptions
1454- add web workers support
1455- add `suite.skip()`
1456- change to output # of pending / passing even on failures. Closes [#872](https://github.com/mochajs/mocha/issues/872)
1457- fix: prevent hooks from being called if we are bailing
1458- fix `this.timeout(0)`
1459
1460# 1.10.0 / 2013-05-21
1461
1462- add add better globbing support for windows via `glob` module
1463- add support to pass through flags such as --debug-brk=1234. Closes [#852](https://github.com/mochajs/mocha/issues/852)
1464- add test.only, test.skip to qunit interface
1465- change to always use word-based diffs for now. Closes [#733](https://github.com/mochajs/mocha/issues/733)
1466- change `mocha init` tests.html to index.html
1467- fix `process` global leak in the browser
1468- fix: use resolve() instead of join() for --require
1469- fix: filterLeaks() condition to not consider indices in global object as leaks
1470- fix: restrict mocha.css styling to #mocha id
1471- fix: save timer references to avoid Sinon interfering in the browser build.
1472
1473# 1.9.0 / 2013-04-03
1474
1475- add improved setImmediate implementation
1476- replace --ignore-leaks with --check-leaks
1477- change default of ignoreLeaks to true. Closes [#791](https://github.com/mochajs/mocha/issues/791)
1478- remove scrolling for HTML reporter
1479- fix retina support
1480- fix tmbundle, restrict to js scope
1481
1482# 1.8.2 / 2013-03-11
1483
1484- add `setImmediate` support for 0.10.x
1485- fix mocha -w spinner on windows
1486
1487# 1.8.1 / 2013-01-09
1488
1489- fix .bail() arity check causing it to default to true
1490
1491# 1.8.0 / 2013-01-08
1492
1493- add Mocha() options bail support
1494- add `Mocha#bail()` method
1495- add instanceof check back for inheriting from Error
1496- add component.json
1497- add diff.js to browser build
1498- update growl
1499- fix TAP reporter failures comment :D
1500
1501# 1.7.4 / 2012-12-06
1502
1503- add total number of passes and failures to TAP
1504- remove .bind() calls. re [#680](https://github.com/mochajs/mocha/issues/680)
1505- fix indexOf. Closes [#680](https://github.com/mochajs/mocha/issues/680)
1506
1507# 1.7.3 / 2012-11-30
1508
1509- fix uncaught error support for the browser
1510- revert uncaught "fix" which breaks node
1511
1512# 1.7.2 / 2012-11-28
1513
1514- fix uncaught errors to expose the original error message
1515
1516# 1.7.0 / 2012-11-07
1517
1518- add `--async-only` support to prevent false positives for missing `done()`
1519- add sorting by filename in code coverage
1520- add HTML 5 doctype to browser template.
1521- add play button to html reporter to rerun a single test
1522- add `this.timeout(ms)` as Suite#timeout(ms). Closes [#599](https://github.com/mochajs/mocha/issues/599)
1523- update growl dependency to 1.6.x
1524- fix encoding of test-case ?grep. Closes [#637](https://github.com/mochajs/mocha/issues/637)
1525- fix unicode chars on windows
1526- fix dom globals in Opera/IE. Closes [#243](https://github.com/mochajs/mocha/issues/243)
1527- fix markdown reporter a tags
1528- fix `this.timeout("5s")` support
1529
1530# 1.6.0 / 2012-10-02
1531
1532- add object diffs when `err.showDiff` is present
1533- add hiding of empty suites when pass/failures are toggled
1534- add faster `.length` checks to `checkGlobals()` before performing the filter
1535
1536# 1.5.0 / 2012-09-21
1537
1538- add `ms()` to `.slow()` and `.timeout()`
1539- add `Mocha#checkLeaks()` to re-enable global leak checks
1540- add `this.slow()` option [aheckmann]
1541- add tab, CR, LF to error diffs for now
1542- add faster `.checkGlobals()` solution [guille]
1543- remove `fn.call()` from reduce util
1544- remove `fn.call()` from filter util
1545- fix forEach. Closes [#582](https://github.com/mochajs/mocha/issues/582)
1546- fix relaying of signals [TooTallNate]
1547- fix TAP reporter grep number
1548
1549# 1.4.2 / 2012-09-01
1550
1551- add support to multiple `Mocha#globals()` calls, and strings
1552- add `mocha.reporter()` constructor support [jfirebaugh]
1553- add `mocha.timeout()`
1554- move query-string parser to utils.js
1555- move highlight code to utils.js
1556- fix third-party reporter support [exogen]
1557- fix client-side API to match node-side [jfirebaugh]
1558- fix mocha in iframe [joliss]
1559
1560# 1.4.1 / 2012-08-28
1561
1562- add missing `Markdown` export
1563- fix `Mocha#grep()`, escape regexp strings
1564- fix reference error when `devicePixelRatio` is not defined. Closes [#549](https://github.com/mochajs/mocha/issues/549)
1565
1566# 1.4.0 / 2012-08-22
1567
1568- add mkdir -p to `mocha init`. Closes [#539](https://github.com/mochajs/mocha/issues/539)
1569- add `.only()`. Closes [#524](https://github.com/mochajs/mocha/issues/524)
1570- add `.skip()`. Closes [#524](https://github.com/mochajs/mocha/issues/524)
1571- change str.trim() to use utils.trim(). Closes [#533](https://github.com/mochajs/mocha/issues/533)
1572- fix HTML progress indicator retina display
1573- fix url-encoding of click-to-grep HTML functionality
1574
1575# 1.3.2 / 2012-08-01
1576
1577- fix exports double-execution regression. Closes [#531](https://github.com/mochajs/mocha/issues/531)
1578
1579# 1.3.1 / 2012-08-01
1580
1581- add passes/failures toggling to HTML reporter
1582- add pending state to `xit()` and `xdescribe()` [Brian Moore]
1583- add the [**@charset**](https://github.com/charset) "UTF-8"; to fix [#522](https://github.com/mochajs/mocha/issues/522) with FireFox. [Jonathan Creamer]
1584- add border-bottom to #stats links
1585- add check for runnable in `Runner#uncaught()`. Closes [#494](https://github.com/mochajs/mocha/issues/494)
1586- add 0.4 and 0.6 back to travis.yml
1587- add `-E, --growl-errors` to growl on failures only
1588- add prefixes to debug() names. Closes [#497](https://github.com/mochajs/mocha/issues/497)
1589- add `Mocha#invert()` to js api
1590- change dot reporter to use sexy unicode dots
1591- fix error when clicking pending test in HTML reporter
1592- fix `make tm`
1593
1594# 1.3.0 / 2012-07-05
1595
1596- add window scrolling to `HTML` reporter
1597- add v8 `--trace-*` option support
1598- add support for custom reports via `--reporter MODULE`
1599- add `--invert` switch to invert `--grep` matches
1600- fix export of `Nyan` reporter. Closes [#495](https://github.com/mochajs/mocha/issues/495)
1601- fix escaping of `HTML` suite titles. Closes [#486](https://github.com/mochajs/mocha/issues/486)
1602- fix `done()` called multiple times with an error test
1603- change `--grep` - regexp escape the input
1604
1605# 1.2.2 / 2012-06-28
1606
1607- Added 0.8.0 support
1608
1609# 1.2.1 / 2012-06-25
1610
1611- Added `this.test.error(err)` support to after each hooks. Closes [#287](https://github.com/mochajs/mocha/issues/287)
1612- Added: export top-level suite on global mocha object (mocha.suite). Closes [#448](https://github.com/mochajs/mocha/issues/448)
1613- Fixed `js` code block format error in markdown reporter
1614- Fixed deprecation warning when using `path.existsSync`
1615- Fixed --globals with wildcard
1616- Fixed chars in nyan when his head moves back
1617- Remove `--growl` from test/mocha.opts. Closes [#289](https://github.com/mochajs/mocha/issues/289)
1618
1619# 1.2.0 / 2012-06-17
1620
1621- Added `nyan` reporter [Atsuya Takagi]
1622- Added `mocha init <path>` to copy client files
1623- Added "specify" synonym for "it" [domenic]
1624- Added global leak wildcard support [nathanbowser]
1625- Fixed runner emitter leak. closes [#432](https://github.com/mochajs/mocha/issues/432)
1626- Fixed omission of .js extension. Closes [#454](https://github.com/mochajs/mocha/issues/454)
1627
1628# 1.1.0 / 2012-05-30
1629
1630- Added: check each `mocha(1)` arg for directories to walk
1631- Added `--recursive` [tricknotes]
1632- Added `context` for BDD [hokaccha]
1633- Added styling for new clickable titles
1634- Added clickable suite titles to HTML reporter
1635- Added warning when strings are thrown as errors
1636- Changed: green arrows again in HTML reporter styling
1637- Changed ul/li elements instead of divs for better copy-and-pasting [joliss]
1638- Fixed issue [#325](https://github.com/mochajs/mocha/issues/325) - add better grep support to js api
1639- Fixed: save timer references to avoid Sinon interfering.
1640
1641# 1.0.3 / 2012-04-30
1642
1643- Fixed string diff newlines
1644- Fixed: removed mocha.css target. Closes [#401](https://github.com/mochajs/mocha/issues/401)
1645
1646# 1.0.2 / 2012-04-25
1647
1648- Added HTML reporter duration. Closes [#47](https://github.com/mochajs/mocha/issues/47)
1649- Fixed: one postMessage event listener [exogen]
1650- Fixed: allow --globals to be used multiple times. Closes [#100](https://github.com/mochajs/mocha/issues/100) [brendannee]
1651- Fixed [#158](https://github.com/mochajs/mocha/issues/158): removes jquery include from browser tests
1652- Fixed grep. Closes [#372](https://github.com/mochajs/mocha/issues/372) [brendannee]
1653- Fixed [#166](https://github.com/mochajs/mocha/issues/166) - When grepping don't display the empty suites
1654- Removed test/browser/style.css. Closes [#385](https://github.com/mochajs/mocha/issues/385)
1655
1656# 1.0.1 / 2012-04-04
1657
1658- Fixed `.timeout()` in hooks
1659- Fixed: allow callback for `mocha.run()` in client version
1660- Fixed browser hook error display. Closes [#361](https://github.com/mochajs/mocha/issues/361)
1661
1662# 1.0.0 / 2012-03-24
1663
1664- Added js API. Closes [#265](https://github.com/mochajs/mocha/issues/265)
1665- Added: initial run of tests with `--watch`. Closes [#345](https://github.com/mochajs/mocha/issues/345)
1666- Added: mark `location` as a global on the CS. Closes [#311](https://github.com/mochajs/mocha/issues/311)
1667- Added `markdown` reporter (github flavour)
1668- Added: scrolling menu to coverage.html. Closes [#335](https://github.com/mochajs/mocha/issues/335)
1669- Added source line to html report for Safari [Tyson Tate]
1670- Added "min" reporter, useful for `--watch` [Jakub Nešetřil]
1671- Added support for arbitrary compilers via . Closes [#338](https://github.com/mochajs/mocha/issues/338) [Ian Young]
1672- Added Teamcity export to lib/reporters/index [Michael Riley]
1673- Fixed chopping of first char in error reporting. Closes [#334](https://github.com/mochajs/mocha/issues/334) [reported by topfunky]
1674- Fixed terrible FF / Opera stack traces
1675
1676# 0.14.1 / 2012-03-06
1677
1678- Added lib-cov to _.npmignore_
1679- Added reporter to `mocha.run([reporter])` as argument
1680- Added some margin-top to the HTML reporter
1681- Removed jQuery dependency
1682- Fixed `--watch`: purge require cache. Closes [#266](https://github.com/mochajs/mocha/issues/266)
1683
1684# 0.14.0 / 2012-03-01
1685
1686- Added string diff support for terminal reporters
1687
1688# 0.13.0 / 2012-02-23
1689
1690- Added preliminary test coverage support. Closes [#5](https://github.com/mochajs/mocha/issues/5)
1691- Added `HTMLCov` reporter
1692- Added `JSONCov` reporter [kunklejr]
1693- Added `xdescribe()` and `xit()` to the BDD interface. Closes [#263](https://github.com/mochajs/mocha/issues/263) (docs \* Changed: make json reporter output pretty json
1694- Fixed node-inspector support, swapped `--debug` for `debug` to match node. Closes [#247](https://github.com/mochajs/mocha/issues/247)
1695
1696# 0.12.1 / 2012-02-14
1697
1698- Added `npm docs mocha` support [TooTallNate]
1699- Added a `Context` object used for hook and test-case this. Closes [#253](https://github.com/mochajs/mocha/issues/253)
1700- Fixed `Suite#clone()` `.ctx` reference. Closes [#262](https://github.com/mochajs/mocha/issues/262)
1701
1702# 0.12.0 / 2012-02-02
1703
1704- Added .coffee `--watch` support. Closes [#242](https://github.com/mochajs/mocha/issues/242)
1705- Added support to `--require` files relative to the CWD. Closes [#241](https://github.com/mochajs/mocha/issues/241)
1706- Added quick n dirty syntax highlighting. Closes [#248](https://github.com/mochajs/mocha/issues/248)
1707- Changed: made HTML progress indicator smaller
1708- Fixed xunit errors attribute [dhendo]
1709
1710# 0.10.2 / 2012-01-21
1711
1712- Fixed suite count in reporter stats. Closes [#222](https://github.com/mochajs/mocha/issues/222)
1713- Fixed `done()` after timeout error reporting [Phil Sung]
1714- Changed the 0-based errors to 1
1715
1716# 0.10.1 / 2012-01-17
1717
1718- Added support for node 0.7.x
1719- Fixed absolute path support. Closes [#215](https://github.com/mochajs/mocha/issues/215) [kompiro]
1720- Fixed `--no-colors` option [Jussi Virtanen]
1721- Fixed Arial CSS typo in the correct file
1722
1723# 0.10.0 / 2012-01-13
1724
1725- Added `-b, --bail` to exit on first exception [guillermo]
1726- Added support for `-gc` / `--expose-gc` [TooTallNate]
1727- Added `qunit`-inspired interface
1728- Added MIT LICENSE. Closes [#194](https://github.com/mochajs/mocha/issues/194)
1729- Added: `--watch` all .js in the CWD. Closes [#139](https://github.com/mochajs/mocha/issues/139)
1730- Fixed `self.test` reference in runner. Closes [#189](https://github.com/mochajs/mocha/issues/189)
1731- Fixed double reporting of uncaught exceptions after timeout. Closes [#195](https://github.com/mochajs/mocha/issues/195)
1732
1733# 0.8.2 / 2012-01-05
1734
1735- Added test-case context support. Closes [#113](https://github.com/mochajs/mocha/issues/113)
1736- Fixed exit status. Closes [#187](https://github.com/mochajs/mocha/issues/187)
1737- Update commander. Closes [#190](https://github.com/mochajs/mocha/issues/190)
1738
1739# 0.8.1 / 2011-12-30
1740
1741- Fixed reporting of uncaught exceptions. Closes [#183](https://github.com/mochajs/mocha/issues/183)
1742- Fixed error message defaulting [indutny]
1743- Changed mocha(1) from bash to node for windows [Nathan Rajlich]
1744
1745# 0.8.0 / 2011-12-28
1746
1747- Added `XUnit` reporter [FeeFighters/visionmedia]
1748- Added `say(1)` notification support [Maciej Małecki]
1749- Changed: fail when done() is invoked with a non-Error. Closes [#171](https://github.com/mochajs/mocha/issues/171)
1750- Fixed `err.stack`, defaulting to message. Closes [#180](https://github.com/mochajs/mocha/issues/180)
1751- Fixed: `make tm` mkdir -p the dest. Closes [#137](https://github.com/mochajs/mocha/issues/137)
1752- Fixed mocha(1) --help bin name
1753- Fixed `-d` for `--debug` support
1754
1755# 0.7.1 / 2011-12-22
1756
1757- Removed `mocha-debug(1)`, use `mocha --debug`
1758- Fixed CWD relative requires
1759- Fixed growl issue on windows [Raynos]
1760- Fixed: platform specific line endings [TooTallNate]
1761- Fixed: escape strings in HTML reporter. Closes [#164](https://github.com/mochajs/mocha/issues/164)
1762
1763# 0.7.0 / 2011-12-18
1764
1765- Added support for IE{7,8} [guille]
1766- Changed: better browser nextTick implementation [guille]
1767
1768# 0.6.0 / 2011-12-18
1769
1770- Added setZeroTimeout timeout for browser (nicer stack traces). Closes [#153](https://github.com/mochajs/mocha/issues/153)
1771- Added "view source" on hover for HTML reporter to make it obvious
1772- Changed: replace custom growl with growl lib
1773- Fixed duplicate reporting for HTML reporter. Closes [#154](https://github.com/mochajs/mocha/issues/154)
1774- Fixed silent hook errors in the HTML reporter. Closes [#150](https://github.com/mochajs/mocha/issues/150)
1775
1776# 0.5.0 / 2011-12-14
1777
1778- Added: push node_modules directory onto module.paths for relative require Closes [#93](https://github.com/mochajs/mocha/issues/93)
1779- Added teamcity reporter [blindsey]
1780- Fixed: recover from uncaught exceptions for tests. Closes [#94](https://github.com/mochajs/mocha/issues/94)
1781- Fixed: only emit "test end" for uncaught within test, not hook
1782
1783# 0.4.0 / 2011-12-14
1784
1785- Added support for test-specific timeouts via `this.timeout(0)`. Closes [#134](https://github.com/mochajs/mocha/issues/134)
1786- Added guillermo's client-side EventEmitter. Closes [#132](https://github.com/mochajs/mocha/issues/132)
1787- Added progress indicator to the HTML reporter
1788- Fixed slow browser tests. Closes [#135](https://github.com/mochajs/mocha/issues/135)
1789- Fixed "suite" color for light terminals
1790- Fixed `require()` leak spotted by [guillermo]
1791
1792# 0.3.6 / 2011-12-09
1793
1794- Removed suite merging (for now)
1795
1796# 0.3.5 / 2011-12-08
1797
1798- Added support for `window.onerror` [guillermo]
1799- Fixed: clear timeout on uncaught exceptions. Closes [#131](https://github.com/mochajs/mocha/issues/131) [guillermo]
1800- Added `mocha.css` to PHONY list.
1801- Added `mocha.js` to PHONY list.
1802
1803# 0.3.4 / 2011-12-08
1804
1805- Added: allow `done()` to be called with non-Error
1806- Added: return Runner from `mocha.run()`. Closes [#126](https://github.com/mochajs/mocha/issues/126)
1807- Fixed: run afterEach even on failures. Closes [#125](https://github.com/mochajs/mocha/issues/125)
1808- Fixed clobbering of current runnable. Closes [#121](https://github.com/mochajs/mocha/issues/121)
1809
1810# 0.3.3 / 2011-12-08
1811
1812- Fixed hook timeouts. Closes [#120](https://github.com/mochajs/mocha/issues/120)
1813- Fixed uncaught exceptions in hooks
1814
1815# 0.3.2 / 2011-12-05
1816
1817- Fixed weird reporting when `err.message` is not present
1818
1819# 0.3.1 / 2011-12-04
1820
1821- Fixed hook event emitter leak. Closes [#117](https://github.com/mochajs/mocha/issues/117)
1822- Fixed: export `Spec` constructor. Closes [#116](https://github.com/mochajs/mocha/issues/116)
1823
1824# 0.3.0 / 2011-12-04
1825
1826- Added `-w, --watch`. Closes [#72](https://github.com/mochajs/mocha/issues/72)
1827- Added `--ignore-leaks` to ignore global leak checking
1828- Added browser `?grep=pattern` support
1829- Added `--globals <names>` to specify accepted globals. Closes [#99](https://github.com/mochajs/mocha/issues/99)
1830- Fixed `mocha-debug(1)` on some systems. Closes [#232](https://github.com/mochajs/mocha/issues/232)
1831- Fixed growl total, use `runner.total`
1832
1833# 0.2.0 / 2011-11-30
1834
1835- Added `--globals <names>` to specify accepted globals. Closes [#99](https://github.com/mochajs/mocha/issues/99)
1836- Fixed funky highlighting of messages. Closes [#97](https://github.com/mochajs/mocha/issues/97)
1837- Fixed `mocha-debug(1)`. Closes [#232](https://github.com/mochajs/mocha/issues/232)
1838- Fixed growl total, use runner.total
1839
1840# 0.1.0 / 2011-11-29
1841
1842- Added `suiteSetup` and `suiteTeardown` to TDD interface [David Henderson]
1843- Added growl icons. Closes [#84](https://github.com/mochajs/mocha/issues/84)
1844- Fixed coffee-script support
1845
1846# 0.0.8 / 2011-11-25
1847
1848- Fixed: use `Runner#total` for accurate reporting
1849
1850# 0.0.7 / 2011-11-25
1851
1852- Added `Hook`
1853- Added `Runnable`
1854- Changed: `Test` is `Runnable`
1855- Fixed global leak reporting in hooks
1856- Fixed: > 2 calls to done() only report the error once
1857- Fixed: clear timer on failure. Closes [#80](https://github.com/mochajs/mocha/issues/80)
1858
1859# 0.0.6 / 2011-11-25
1860
1861- Fixed return on immediate async error. Closes [#80](https://github.com/mochajs/mocha/issues/80)
1862
1863# 0.0.5 / 2011-11-24
1864
1865- Fixed: make mocha.opts whitespace less picky [kkaefer]
1866
1867# 0.0.4 / 2011-11-24
1868
1869- Added `--interfaces`
1870- Added `--reporters`
1871- Added `-c, --colors`. Closes [#69](https://github.com/mochajs/mocha/issues/69)
1872- Fixed hook timeouts
1873
1874# 0.0.3 / 2011-11-23
1875
1876- Added `-C, --no-colors` to explicitly disable
1877- Added coffee-script support
1878
1879# 0.0.2 / 2011-11-22
1880
1881- Fixed global leak detection due to Safari bind() change
1882- Fixed: escape html entities in Doc reporter
1883- Fixed: escape html entities in HTML reporter
1884- Fixed pending test support for HTML reporter. Closes [#66](https://github.com/mochajs/mocha/issues/66)
1885
1886# 0.0.1 / 2011-11-22
1887
1888- Added `--timeout` second shorthand support, ex `--timeout 3s`.
1889- Fixed "test end" event for uncaughtExceptions. Closes [#61](https://github.com/mochajs/mocha/issues/61)
1890
1891# 0.0.1-alpha6 / 2011-11-19
1892
1893- Added travis CI support (needs enabling when public)
1894- Added preliminary browser support
1895- Added `make mocha.css` target. Closes [#45](https://github.com/mochajs/mocha/issues/45)
1896- Added stack trace to TAP errors. Closes [#52](https://github.com/mochajs/mocha/issues/52)
1897- Renamed tearDown to teardown. Closes [#49](https://github.com/mochajs/mocha/issues/49)
1898- Fixed: cascading hooksc. Closes [#30](https://github.com/mochajs/mocha/issues/30)
1899- Fixed some colors for non-tty
1900- Fixed errors thrown in sync test-cases due to nextTick
1901- Fixed Base.window.width... again give precedence to 0.6.x
1902
1903# 0.0.1-alpha5 / 2011-11-17
1904
1905- Added `doc` reporter. Closes [#33](https://github.com/mochajs/mocha/issues/33)
1906- Added suite merging. Closes [#28](https://github.com/mochajs/mocha/issues/28)
1907- Added TextMate bundle and `make tm`. Closes [#20](https://github.com/mochajs/mocha/issues/20)
1908
1909# 0.0.1-alpha4 / 2011-11-15
1910
1911- Fixed getWindowSize() for 0.4.x
1912
1913# 0.0.1-alpha3 / 2011-11-15
1914
1915- Added `-s, --slow <ms>` to specify "slow" test threshold
1916- Added `mocha-debug(1)`
1917- Added `mocha.opts` support. Closes [#31](https://github.com/mochajs/mocha/issues/31)
1918- Added: default [files] to _test/\*.js_
1919- Added protection against multiple calls to `done()`. Closes [#35](https://github.com/mochajs/mocha/issues/35)
1920- Changed: bright yellow for slow Dot reporter tests
1921
1922# 0.0.1-alpha2 / 2011-11-08
1923
1924- Missed this one :)
1925
1926# 0.0.1-alpha1 / 2011-11-08
1927
1928- Initial release
1929
\No newline at end of file