5.0.9 (2020-05-19)

## Bug Fixes

- dependencies: update to safe version of http-proxy (#3519) (00347bb), closes #3510

# <a href="https://github.com/karma-runner/karma/compare/v5.0.7...v5.0.8">5.0.8</a> (2020-05-18)

## Bug Fixes

- dependencies: update and unlock socket.io dependency (#3513) (b60391f)
- dependencies: update to latest log4js major (#3514) (47f1cb2)

# <a href="https://github.com/karma-runner/karma/compare/v5.0.6...v5.0.7">5.0.7</a> (2020-05-16)

## Bug Fixes

- detect type for URLs with query parameter or fragment identifier (#3509) (f399063), closes #3497

# <a href="https://github.com/karma-runner/karma/compare/v5.0.5...v5.0.6">5.0.6</a> (2020-05-16)

## Bug Fixes

- dependencies: update production dependencies (#3512) (0cd696f)

# <a href="https://github.com/karma-runner/karma/compare/v5.0.4...v5.0.5">5.0.5</a> (2020-05-07)

## Bug Fixes

- cli: restore command line help contents (#3502) (e99da31), closes #3474

# <a href="https://github.com/karma-runner/karma/compare/v5.0.3...v5.0.4">5.0.4</a> (2020-04-30)

## Bug Fixes

- browser: make sure that empty results array is still recognized (#3486) (fa95fa3)

# <a href="https://github.com/karma-runner/karma/compare/v5.0.2...v5.0.3">5.0.3</a> (2020-04-29)

## Bug Fixes

- client: flush resultsBuffer on engine upgrade (#3212) (e44ca94), closes #3211

# <a href="https://github.com/karma-runner/karma/compare/v5.0.1...v5.0.2">5.0.2</a> (2020-04-16)

## Bug Fixes

- ci: stop the proxy before killing the child, handle errors (#3472) (abe9af6), closes #3464

# <a href="https://github.com/karma-runner/karma/compare/v5.0.0...v5.0.1">5.0.1</a> (2020-04-10)

## Bug Fixes

- file-list: do not define fs.statAsync (#3467) (55a59e7)

# <a href="https://github.com/karma-runner/karma/compare/v4.4.1...v5.0.0">5.0.0</a> (2020-04-09)

### Bug Fixes

- install semantic-release as a regular dev dependency (#3455) (1eaf35e)
- ci: echo travis env that gates release after_success (#3446) (b8b2ed8)
- ci: poll every 10s to avoid rate limit. (#3388) (91e7e00)
- middleware/runner: handle file list rejections (#3400) (80febfb), closes #3396 #3396
- server: cleanup import of the removed method (#3439) (cb1bcbf)
- server: createPreprocessor was removed (#3435) (5c334f5)
- server: detection new MS Edge Chromium (#3440) (7166ce2)
- server: replace optimist on yargs lib (#3451) (ec1e69a), closes #2473
- server: Report original error message (#3415) (79ee331), closes #3414

### Code Refactoring

- use native Promise instead of Bluebird (#3436) (33a069f), closes /github.com/karma-runner/karma/pull/3060#discussion_r284797390

### Continuous Integration

- drop node 8, adopt node 12 (#3430) (a673aa8)

### Features

- docs: document `DEFAULT_LISTEN_ADDR` constant (#3443) (057d527), closes #2479
- karma-server: added log to the server.js for uncaught exception (#3399) (adc6a66)
- preprocessor: obey Pattern.isBinary when set (#3422) (708ae13), closes #3405

### BREAKING CHANGES

- Karma plugins which rely on the fact that Karma uses Bluebird promises may break as Bluebird-specific API is no longer available on Promises returned by the Karma core
- server: Deprecated createPreprocessor removed, karma-browserify < 7 version doesn't work
- no more testing on node 8.

## <a href="https://github.com/karma-runner/karma/compare/v4.4.0...v4.4.1">4.4.1</a> (2019-10-18)

### Bug Fixes

- deps: back to karma-browserstack-launcher 1.4 (#3361) (1cd87ad)
- server: Add test coverage for config.singleRun true branch. (#3384) (259be0d)
- if preprocessor is async function and doesn't return a content then await donePromise (#3387) (f91be24)

# <a href="https://github.com/karma-runner/karma/compare/v4.3.0...v4.4.0">4.4.0</a> (2019-10-17)

### Bug Fixes

- runner: remove explicit error on all tests failed (#3369) (f8005c6), closes #3367

### Features

- client: Add trusted types support (#3360) (019bfd4)
- Preprocessor can return Promise (#3376) (3ffcd83)
- config: add failOnSkippedTests option. (#3374) (4ed3af0)
- config: clientDisplayNone sets client elements display none. (#3348) (6235e68)
- deps: Remove core-js dependency. (#3379) (0d70809)

# <a href="https://github.com/karma-runner/karma/compare/v4.2.0...v4.3.0">4.3.0</a> (2019-08-27)

### Bug Fixes

- build: switch from yarn to package-lock.json (#3351) (6c5add2)
- config: Simpilfy error proceesing. (#3345) (582a406), closes #3339
- deps: lodash update. (#3341) (5614c04)
- server: Simplify 'dom' inclusion. (#3356) (5f13e11)
- test: `test:client` silently failing on Travis (#3343) (1489e9a), closes /travis-ci.org/karma-runner/karma/jobs/537027667#L1046
- travis: Pin to trusty (#3347) (1c6c690)

### Features

- async: frameworks can be loaded asynchronously (#3297) (177e2ef), closes #851
- config: socket.io server pingTimeout config option. (#3355) (817fbbd)
- preprocessor: preprocessor_priority execution order. (#3303) (c5f3560)
- runner: feat(runner): (62d4c5a), closes #2121 #2799 #2121 #2799

# <a href="https://github.com/karma-runner/karma/compare/v4.1.0...v4.2.0">4.2.0</a> (2019-07-12)

### Bug Fixes

- logging: Util inspect for logging the config. (#3332) (70b72a9)
- reporter: format stack with 1-based column (#3325) (182c04d), closes #3324
- server: Add error handler for webserver socket. (#3300) (fe9a1dd)

# <a href="https://github.com/karma-runner/karma/compare/v4.0.1...v4.1.0">4.1.0</a> (2019-04-15)

### Bug Fixes

- client: Enable loading different file types when running in parent mode without iframe (#3289) (7968db6)
- client: Only create the funky object if message is not a string (#3298) (ce6825f), closes #3296
- launcher: Log state transitions in debug (#3294) (6556ab4), closes #3290
- middleware: log invalid filetype (#3292) (7eb48c5), closes #3291

## <a href="https://github.com/karma-runner/karma/compare/v4.0.0...v4.0.1">4.0.1</a> (2019-02-28)

### Bug Fixes

- browser: allow updating total specs count (#3264) (d5df723)
- remove vulnerable dependency combine-lists (#3273) (c43f584), closes #3265
- remove vulnerable dependency expand-braces (#3270) (4ec4f6f), closes #3268 #3269
- filelist: correct logger name. (#3262) (375bb5e)
- launcher: Debug Child Processes exit signal (#3259) (c277a6b)

# <a href="https://github.com/karma-runner/karma/compare/v3.1.4...v4.0.0">4.0.0</a> (2019-01-23)

### Bug Fixes

- client: fix issue with loaded on safari 10 (#3252) (571191c), closes #3198
- config: add test:unit npm script (#3242) (02f071d)

### Chores

- remove support for node 6 (#3246) (8a83990), closes #3151

### BREAKING CHANGES

- Drop Support for Node 6, to make it possible to use async/await in karma codebase.

## <a href="https://github.com/karma-runner/karma/compare/v3.1.3...v3.1.4">3.1.4</a> (2018-12-17)

### Bug Fixes

- file-list: revert "do not preprocess up-to-date files" (#3226) (#3230) (bb022a7)
- improve error msg when bin is a directory (#3231) (584dddc)
- restarted browsers not running tests (#3233) (cc2eff2)

## <a href="https://github.com/karma-runner/karma/compare/v3.1.2...v3.1.3">3.1.3</a> (2018-12-01)

### Bug Fixes

- add missing dep flatted (#3223) (655d4d2)

## <a href="https://github.com/karma-runner/karma/compare/v3.1.1...v3.1.2">3.1.2</a> (2018-12-01)

### Bug Fixes

- browser: report errors to console during singleRun=false (#3209) (30ff73b), closes #3131
- changelog: remove release which does not exist (#3214) (4e87902)
- dep: Bump useragent to fix HeadlessChrome version (#3201) (240209f), closes #2762
- deps: upgrade sinon-chai 2.x -> 3.x (#3207) (dc5f5de)
- file-list: do not preprocess up-to-date files (#3196) (5334d1a), closes #2829
- package: bump lodash version (#3203) (d38f344), closes #3177
- server: use flatted for json.stringify (#3220) (fb05fb1), closes #3215

### Features

- docs: callout the key debug strategies. (#3219) (2682bff)

## <a href="https://github.com/karma-runner/karma/compare/v3.1.0...v3.1.1">3.1.1</a> (2018-10-23)

### Bug Fixes

- config: move puppeteer from dependency to dev-dependency (#3193) (f0d52ad), closes #3191

# <a href="https://github.com/karma-runner/karma/compare/v3.0.0...v3.1.0">3.1.0</a> (2018-10-22)

### Bug Fixes

- work around broken console methods (873e4f9), closes /github.com/angular/angular.js/pull/16644#issuecomment-407680658
- browser: emit 'browsers_change' in collection (#3183) (7634e71)
- config: remove phantomjs in favor of chrome headless (#3175) (0f8b2b1)
- init: Support ChromeHeadless in `validateBrowser` (#3110) (eeadcf2)
- middleware: simplify stripHost. (#3115) (d65e911)
- runner: Do not persist grep option across runs (#3121) (c91cb81)
- runner: Make exit code configurable when tests are failing (#3116) (74da748), closes #1300
- test/client: revert const/let changes. (c097ecf)

### Features

- config: Add config option for browser socket timeout (#3102) (11e3a9d), closes #2927
- config: add support for ES modules (e811adb)
- frameworks: report start() errors back to server. (#3126) (8257375)
- server: .dom files include HTML tags in page. (#3178) (4651524)
- server: Add public API to force a file refresh (dab8a82)
- server: Add stop method (#3153) (6d96d8e), closes #3149
- server: Add support for encoded source files (#3123) (68b37d3)

# <a href="https://github.com/karma-runner/karma/compare/v2.0.5...v3.0.0">3.0.0</a> (2018-08-09)

### Bug Fixes

- config: wait 20s for browser activity. (#3087) (88b977f)
- config: Wait 30s for browser activity per Travis. (#3091) (f6d2f0e)
- init: add "ChromeHeadless" to the browsers' options (#3096) (56fda53)
- server: Exit clean on unhandledRejections. (#3092) (02f54c6), closes #3064
- travis: Up the socket timeout 2->20s. (#3103) (732396a), closes #3102
- travis: use the value not the key name. (#3097) (90f5546)
- travis: validate TRAVIS_COMMIT if TRAVIS_PULL_REQUEST_SHA is not set. (#3094) (fba5d36)
- travis: Validate TRAVIS_PULL_REQUEST_SHA rather than TRAVIS_COMMIT. (#3093) (a58fa45)

### BREAKING CHANGES

- Drop Support for Nodejs4 (#3082)

## <a href="https://github.com/karma-runner/karma/compare/v2.0.4...v2.0.5">2.0.5</a> (2018-07-24)

### Bug Fixes

- remove circular reference in Browser (518cb11), closes #3075
- browser: ensure browser state is EXECUTING when tests start (#3074) (dc7265b), closes #1640
- doc: Document release steps for admins (#3063) (a701732)
- middleware: Obey the Promise API. (93ba05a)
- server: pass bound port to prevent`EADDRINUSE` issue. (#3065) (850a90b)

### Features

- preprocessor: Allow preprocessor to handle binary files (#3054) (7b66e18)

## <a href="https://github.com/karma-runner/karma/compare/v2.0.3...v2.0.4">2.0.4</a> (2018-06-21)

### Bug Fixes

- deps: remove babel-core and babel call in wallaby. (#3044) (7da8ca0)
- events: bind emitters with for..in. (#3059) (b99f03f), closes #3057
- launcher: Only markCaptured browsers that are launched. (#3047) (f8f3ebc)
- server: actually call stert(). (#3062) (40d836a)
- server: Resurrect static function Server.start() lost in 2.0.3 (#3055) (c88ebc6)

## <a href="https://github.com/karma-runner/karma/compare/v2.0.2...v2.0.3">2.0.3</a> (2018-06-15)

The 2.03. change log was incorrectly created due to an extra pending tag in the repo.

## <a href="https://github.com/karma-runner/karma/compare/v2.0.1...v2.0.2">2.0.2</a> (2018-04-19)

### Bug Fixes

- package.json: sinon-chai 2.13 is not compatible with sinon 4.x (#2977) (e095b05)

## <a href="https://github.com/karma-runner/karma/compare/v1.7.1...v2.0.1">2.0.1</a> (2018-04-19)

### Bug Fixes

- browser: nicer "disconnect" - no more "Disconnectedundefined" (a987d63)
- common: fix AppVeyor build (6c5e7d0)
- common: more detailed info about error (424aacc)
- config: Call debug log methods after setting the loglevel based upon config/cli-options. (a340dae)
- config: Call debug log methods after setting the loglevel based upon config/cli-options. (99fd3f0)
- config: Retry install with appveyor-retry. (17d5791)
- config: Workaround npm 5.4 windows bug (ec47d81)
- deps: update socket.io to version 2.0.3. (3b7b019), closes #2777
- logging: Upgrade to log4js 2.x API. (#2868) (f6f8707), closes #2858
- middleware: add file type to absolute urls (bd1f799)
- ignore jsVersion configuration property in Firefox 59+ (2694d54), closes #2957
- middleware: avoid using deprecated Buffer API (018e6be)
- reporter: Fix issue causing error stack not to be parsed correctly (ac4e1a9), closes #2930
- reporter: show file path correctly when urlRoot specified (34dc7d3), closes #2897
- server: switch to sync write (6ec74ee)

### Features

- cli: Warn on commands with underscores. (0801a7f)
- config: allow to use newer versions of CoffeeScript (c1fcf42)
- launcher: trim whitespace in browser name (871d46f)
- launcher: trim whitespace in browser name (334f9fb)
- middleware: added manual file type option (0330cd1), closes #2824
- better string representation of errors (c9e1ca9)
- drop core-js and babel where possible (60dfc5c)
- update of supported node versions (e79463b)

## <a href="https://github.com/karma-runner/karma/compare/v1.7.0...1.7.1">1.7.1</a> (2017-08-25)

### Bug Fixes

- debug-runner: support asynchronous tests in the debug runner (a36f3eb), closes #2811
- file-list: Stop polluting global environment with core-js (0988022)
- preprocessor: renamed handeFile to readFileCallback (92a8c81)
- preprocessor: retry if fs.readFile fails (4b60513)
- preprocessor: throw if retry fails (2789bf5)

### Features

- ci: disable testing of node versions below 4 (ec92ea9)
- client: log global error stack trace (523d608), closes #2812
- config: remove polling usage (b0f41c7), closes #2669
- deps: add support for node@8 (7feaee3), closes #2754
- deps: update socket.io to `1.7.4` to avoid issue with `ws[@1](https://github.com/1).1.2` (264442b), closes #2593
- watcher: Debounce autoWatchBatchDelay (2f8c049), closes #2331

# <a href="https://github.com/karma-runner/karma/compare/v1.7.1...v2.0.0">2.0.0</a> (2017-12-21)

### Bug Fixes

- config: Call debug log methods after setting the loglevel based upon config/cli-options. (99fd3f0)
- config: Call debug log methods after setting the loglevel based upon config/cli-options. (a340dae)
- config: Retry install with appveyor-retry. (17d5791)
- config: Workaround npm 5.4 windows bug (ec47d81)
- deps: update socket.io to version 2.0.3. (3b7b019), closes #2821 #2777
- logging: Upgrade to log4js 2.x API. (#2868) (f6f8707), closes #2858
- reporter: show file path correctly when urlRoot specified (34dc7d3), closes #2897
- debug-runner: support asynchronous tests in the debug runner (a36f3eb), closes #2811
- file-list: Stop polluting global environment with core-js (0988022)
- preprocessor: renamed handeFile to readFileCallback (92a8c81)
- preprocessor: retry if fs.readFile fails (4b60513)
- preprocessor: throw if retry fails (2789bf5)

### Features

- cli: Warn on commands with underscores. (0801a7f)
- config: allow to use newer versions of CoffeeScript (c1fcf42)
- launcher: trim whitespace in browser name (871d46f)
- launcher: trim whitespace in browser name (334f9fb)
- middleware: added manual file type option (0330cd1), closes #2824
- better string representation of errors (c9e1ca9) n* drop core-js and babel where possible (60dfc5c)
- update of supported node versions (e79463b)
- ci: disable testing of node versions below 4 (ec92ea9)
- client: log global error stack trace (523d608), closes #2812
- config: remove polling usage (b0f41c7), closes #2669
- deps: add support for node@8 (7feaee3), closes #2754
- deps: update socket.io to `1.7.4` to avoid issue with `ws@1.1.2` (264442b), closes #2593
- watcher: Debounce autoWatchBatchDelay (2f8c049), closes #2331

## <a href="https://github.com/karma-runner/karma/compare/v1.7.0...v1.7.1">1.7.1</a> (2017-08-30)

### Features

- deps: add support for node@8 (ea32194), closes #2754

# <a href="https://github.com/karma-runner/karma/compare/v1.6.0...v1.7.0">1.7.0</a> (2017-05-06)

### Bug Fixes

- middleware: change to use vanilla for loop (ac62cc0), closes #2671
- reporters: Revert the backwards-incompatible log priority order changes (316b944), closes #2582

### Features

- runner: Buffer stdout and stderr for output when errors occur (460d423)

# <a href="https://github.com/karma-runner/karma/compare/v1.5.0...v1.6.0">1.6.0</a> (2017-04-05)

### Bug Fixes

- client: add proxy support to stringify (be10116)
- file-list: always use file from first matcher (74bfdf3)
- middleware: does not work with mootools (#2591) (2685e13)
- reporter: keep users exact formatError result (17c2c43)

### Features

- browser: add browser_info event (09ac7d7), closes #2192
- launcher: output stderr for failing launchers (7d33398)
- proxy: add proxy events to config (f5d99fb)

# <a href="https://github.com/karma-runner/karma/compare/v1.4.1...v1.5.0">1.5.0</a> (2017-02-20)

### Bug Fixes

- filter browser logging by level of LOG (89a7a1c), closes #2228
- make window.parent.karma available in debugged context (3e7eaeb)
- client: don't crash if receive array-like results (e095411), closes #2061

### Features

- add an option to run the tests by dynamically loading test scripts without iframe (aa42c41)
- add support for node@7 (eb407ab), closes #2559

## <a href="https://github.com/karma-runner/karma/compare/v1.4.0...v1.4.1">1.4.1</a> (2017-01-29)

### Bug Fixes

- runner: Make process kill timeout configurable (ffaa054), closes #2447
- runner: Make process kill timeout configurable - Fix Build (a128e5c), closes #2447
- runner: Test process kill timeout config (99a1d48), closes #2447

### Features

- config: allow config to be a default export (9976dce)

# <a href="https://github.com/karma-runner/karma/compare/v1.3.0...v1.4.0">1.4.0</a> (2017-01-14)

### Bug Fixes

- browser: filter browser logging by level (35965d9), closes #2228
- cli: restore shell completion in the npm package (f56b5a5), closes #2351
- config: add crossOriginAttribute config option (1e465b1)
- middleware: update `Buffer` usage (3d94b8c)
- reporter: do not allow URL domains to span new lines (2c13404)
- reporter: strip only hostname/port (fbbeccf), closes #2209
- reporters: cannot read property map of undefined (305df2c), closes #1662
- server: exit with code 1 when failing due to missing browser (86e2ef2), closes #2403

### Features

- api: add constants to the public api (ee10977), closes #2361
- api: expose `config.parseConfig` on the public api (7d2c1ae)
- client: capture confirm & prompt (3a618b3), closes #694
- server: add listen address option so that IPv6 and loopback interfaces can be used (8e5bee6), closes #2477
- web-server: allow overriding of default http module (1e7514d), closes #2424

# <a href="https://github.com/karma-runner/karma/compare/v1.2.0...v1.3.0">1.3.0</a> (2016-09-09)

### Bug Fixes

- launcher: exclude concurrent browser on launcher restart (96f8f14), closes #2280
- middleware: ensure Range headers adhere more closely to RFC 2616 (8b1b4b1), closes #2310

### Features

- reporter: add config formatError function (98a4fbf), closes #2119
- upstreamProxy config option to deal with proxies that adjust the base path, etc (55755e4)

# <a href="https://github.com/karma-runner/karma/compare/v1.1.1...v1.2.0">1.2.0</a> (2016-08-11)

### Bug Fixes

- context: Updated postMessage listener to stop validating non-Karma messages (306e565)
- docs: fix stopper.stop wrong variable name. closes #2244 (0745a00), closes #2244
- file-list: ensure patterns are comparable (4d1bf3e), closes #2194
- middleware: fix WARN log when passing undefined error handler to promise.then (20b87de), closes #2227
- call .resume to prevent browser output streams filling up (107cd02)
- Merge config child nodes on config.set() (65b688a)
- web-server: Allow karma to run in project which path contains HTML URL encoded characters. Karma fails on Jenkins when it checks out branches containing '/' as it converts it to '%2F'. Fixes errors seen on #1751, #61. (da1930f), closes #1751 #61

### Features

- web-server: Allow Range headers in web server. (a567b6f), closes #2140

## <a href="https://github.com/karma-runner/karma/compare/v1.1.1...v1.1.2">1.1.2</a> (2016-07-26)

### Bug Fixes

- Merge config child nodes on config.set() (65b688a)
- context: Updated postMessage listener to stop validating non-Karma messages (306e565)
- docs: fix stopper.stop wrong variable name. closes #2244 (0745a00), closes #2244
- file-list: ensure patterns are comparable (4d1bf3e), closes #2194
- middleware: fix WARN log when passing undefined error handler to promise.then (20b87de), closes #2227

## <a href="https://github.com/karma-runner/karma/compare/v1.1.0...v1.1.1">1.1.1</a> (2016-07-07)

### Bug Fixes

- executor: ensure run_complete is emitted last (9c894f9), closes #2210
- reporter: inject correct config option (80bd726)
- reporter: remove console.log (b4e3694)
- Add crossorigin attribute to script HTML tags (5690ffe)

### Features

- deprecate helper._ (5c6b151)
- config: add support for TypeScript (6445310)

# <a href="https://github.com/karma-runner/karma/compare/v1.0.0...v1.1.0">1.1.0</a> (2016-06-26)

### Bug Fixes

- deps: freeze socket.io version (73e300d)
- server: log browser messages to the terminal (d1f924c), closes #2187

### Features

- Allow frameworks to inject middleware (d972f3d)

# <a href="https://github.com/karma-runner/karma/compare/v0.13.22...v1.0.0">1.0.0</a> (2016-06-23)

### Bug Fixes

- ci: Repaired AppVeyor for Node.js@0.12 (cbfd98c)
- client: does not throws an error for non DOM object that has `tagName` property (ba55afb), closes #2139
- files: Ignore included:false pattern (db42a7f), closes #1530
- helper: Patched replaceWinPath from choking on `null` values (caa4d21)
- karma: Escape quotes for file names. This fixes issue #1876. (9dff3f3), closes #1876 #1876
- launcher: Allow dynamic browser launches (2b7d703)
- launcher: send sigkill on timeout when force killing (c615c1f)
- proxy: Port mixup and infinite loop (05616a2), closes #1987
- reporter: Better handling of non string error (82f1c12)
- reporter: Disable source maps for URLs without line number (2080221), closes #1274
- Change timing on test (0cb6204)
- Setting default value for config in runner and stopper (414db89)
- reporters: Fix results not being reported (6303566)
- reporters: Throwing error without loosing stack trace (8a515ae)
- runner: Merge config.client.args with client.args provided by run (91de383), closes #1746
- updater: Fix time unit on screen display from 'ms' to 'seconds'. (f39dd04)
- web-server: Restart disconnected browser in non-singleRun mode. (f6587dc)
- web-server: Update config on every request (8ef475f), closes #1972

### Code Refactoring

- context: Future-proofed context.html and debug.html for modularity (43f6a1a)

### Features

- browser: Emit a browser error when a disconnect occurs. (e36ba6c)
- config: Add configuration for adding javascript version. (0239c75), closes #1719
- config: Allow custom context and debug files, with feature test and some specs. (225c0e5)
- file-list: Upgrade bluebird to v.3 (f5c252f)
- logging: Add colors and log-level options to run-command (9d4e234)
- logging: Add logging-setup function (d14bd62)
- logging: Send color option to server (287d0db)
- preprocessors: if a file matches multiple preprocessor patterns, intelligently merge the list of preprocessors, deduping and trying to preserve the order (59642a6)
- reporter: improve source map handling and reporting. (cf0be47)
- reporters: Look for color-reporter (fd9262d)
- server: add 'listening' event with port number (82cd0df)
- Add `stopper` to the public API (3d4fa00)
- Add possibility to stop a karma server (66ae80b)
- add support for node 6 (0b8dc2c)
- adding support for before middleware (51b4206)
- stopper: Enable programically detached server (f10fd81)
- Fail on launcher-, reporter-, plugin-, or preprocessor-load errors. (fca930e), closes #855
- upgrade dependencies to their latest versions (08242a0)

### BREAKING CHANGES

- context: Our `context.html` and `debug.html` structures have changed to lean on `context.js` and `debug.js`. This is in preparation for deeper `context.js` changes in #1984.

As a result, all `customContextFile` and `customDebugFile` options much update their format to match this new format.

## <a href="https://github.com/karma-runner/karma/compare/v0.13.21...v0.13.22">0.13.22</a> (2016-03-08)

## <a href="https://github.com/karma-runner/karma/compare/v0.13.20...v0.13.21">0.13.21</a> (2016-02-12)

### Reverts

- "Merge pull request #1791 from budde377/feature-adding-no-colors-to-run-command" (96ebdc4), closes #1894 #1895

## <a href="https://github.com/karma-runner/karma/compare/v0.13.19...v0.13.20">0.13.20</a> (2016-02-12)

### Bug Fixes

- runner: Remove null characters from terminal output (3481500), closes #1343
- invalid characters in the headers on Node 5.6.0 (152337d)
- Remove inadvertently added dependency to mock-fs (ad5f6b5)
- Switch all requires from fs to graceful-fs (1e21aaa)
- Upgrade socket.io to 1.4.5 (2f51a9f)

### Features

- Allow custom browser names (60ba85f)
- Do not fail on empty test suite (8004763), closes #926
- config: Add `forceJSONP` option (8627d67)
- launcher: Enable specification of retry-limit (cc5547c), closes #1126
- logging: Add colors and log-level options to run-command (2d29165)
- logging: Send color option to server (486c4f3)
- web-server: Use isbinaryfile for binary file detection (f938a8e), closes #1070

## <a href="https://github.com/karma-runner/karma/compare/v0.13.18...v0.13.19">0.13.19</a> (2016-01-06)

### Bug Fixes

- server: Handle new socket.io internal format. (3ab78d6), closes #1782

## <a href="https://github.com/karma-runner/karma/compare/v0.13.17...v0.13.18">0.13.18</a> (2016-01-05)

### Bug Fixes

- preprocessor: Improve handling of failed preprocessors (e726d1c), closes #1521

### Features

- cli: Add .config/karma.conf.js to the default lookup path (49bf1aa), closes #1387
- config: Add a clearContext config to prevent clearing of context. (5fc8ee7)
- config: mime config option support (d562383), closes #1735

## <a href="https://github.com/karma-runner/karma/compare/v0.13.16...v0.13.17">0.13.17</a> (2016-01-04)

## <a href="https://github.com/karma-runner/karma/compare/v0.13.15...v0.13.16">0.13.16</a> (2015-12-24)

### Bug Fixes

- config: corrects spelling in example config template (9fafc60)
- middleware: Correct spelling of middleware logger name (9e9e7e6)
- preprocessor: Directory names with dots (4b5e094)
- test: locale in Expire header (db04cf0), closes #1741

### Features

- proxy: Allow proxies configuration to be an object (ad94356)
- proxy: Allow to configure changeOrigin option of http-proxy (ae05ea4), closes #1729

## <a href="https://github.com/karma-runner/karma/compare/v0.13.14...v0.13.15">0.13.15</a> (2015-11-03)

### Bug Fixes

- eslint: Fix formatting for the new ESLint 1.8.0 (dc1bbab)

## <a href="https://github.com/karma-runner/karma/compare/v0.13.13...v0.13.14">0.13.14</a> (2015-10-22)

### Bug Fixes

- client: Revert back to old reloading detection (f1c22d6)
- client: Wait for childwindow to load (c1bb15a)

## <a href="https://github.com/karma-runner/karma/compare/v0.13.12...v0.13.13">0.13.13</a> (2015-10-22)

### Bug Fixes

- client: Wait for iframe to be loaded (1631474), closes #1652

## <a href="https://github.com/karma-runner/karma/compare/v0.13.11...v0.13.12">0.13.12</a> (2015-10-22)

### Bug Fixes

- proxy: Pass protocol in target object to enable https requests (142db90)

### Features

- launcher: Add concurrency limit (1741deb), closes #1465

## 0.13.11 (2015-10-14)

### Bug Fixes

- reporter: preserve base/absolute word in error (b3798df)

### Features

- config: add restartOnFileChange option (1082f35)
- reporter: Replace way-too-big memoizee with a trivial solution. (d926fe3)
- web-server: add support for custom headers in files served (4301bea)
- web-server: allow injection of custom middleware. (2e963c3), closes #1612

## 0.13.10 (2015-09-21)

### Bug Fixes

- config: Error when browers option isn't array (b695460)

### Features

- config: Pass CLI arguments to `karma.config.js`. (70cf903), closes #1561

## 0.13.9 (2015-08-11)

### Bug Fixes

- file-list: refresh resolves before 'file_list_modified' event (65f1eca), closes #1550
- reporter: Enable sourcemaps for errors that without column # (086a542)

## 0.13.8 (2015-08-06)

### Bug Fixes

- middleware: Inject `config.urlRoot`. (569ca0e), closes #1516

### Features

- static: Support media queries (94e7b50)
- Add engine support for iojs@3. (eb1c8d2)

## 0.13.7 (2015-08-05)

### Bug Fixes

- file-list: Use modified throttle instead of debounce (cb2aafb), closes #1545

## 0.13.6 (2015-08-05)

### Bug Fixes

- client: Use supported shim path. (184f12e)
- web-server: Ensure `filesPromise` is always resolvable (892fa89), closes #1544

## 0.13.5 (2015-08-04)

### Bug Fixes

- file-list: Ensure autowatchDelay is working. (655599a), closes #1520
- file-list: use lodash find() (3bd15a7), closes #1533

### Features

- web-server: Allow running on https (1696c78)

## 0.13.4 (2015-08-04)

### Bug Fixes

- client: add ES5 shim (14c30b7), closes #1529
- reporter: Ensure errors use the source map. (0407a22), closes #1495
- runner: Wait for file list refresh to finish before running (94cddc0)
- server: Update timers for limited execution environments (9cfc1cd), closes #1519

### 0.13.3 (2015-07-22)

#### Bug Fixes

- restore backward compatibility for karma.nosp@m.@0.1.nosp@m.3 (648b357a)

#### Features

- preprocessor: Capital letters in binary files extenstions (1688689d, closes #1508)

### 0.13.2 (2015-07-17)

#### Features

- cli: Better CLI args validation (73d31c2c)
- preprocessor: Instantiate preprocessors early to avoid race conditions (8a9c8c73)
- server: Add public api to force a file list refresh. (b3c462a5)

### 0.13.1 (2015-07-16)

#### Bug Fixes

- file-list:
  - Ensure files are sorted and unique (9dc5f8bc, closes #1498, #1499)
  - Normalize glob patterns (fb841a79, closes #1494)

## 0.13.0 (2015-07-15)

#### Bug Fixes

- upgrade http-proxy module for bug fixes (09c75fe1)
- cli: print UserAgent string verbatim if from an unknown browser (9d972263)
- client:
  - serialise DOM objects (1f73be4f, closes #1106)
  - Update location detection for socket.io (7a23fa57)
- deps: Upgrade connect 3. (b490985c)
- file-list: Use correct find function (4cfaae96)
- helper: Ensure browser detection is handled in the unkown case (9328f67e)
- launchers: Listen to the correct error event. (45a69221)
- web-server: Correctly update filesPromise on files updated (32eec8d7)

#### Features

- Upgrade to socket.io 1.3 (603872c9, closes #1220)
- allow frameworks to add preprocessors This changes the order in which things are (f6f5eec3)
- config: add nocache option for file patterns (6ef7e7b1)
- file-list: Use glob.sync for better speed (1b65cde4)
- logger:
  - Add date/time stamp to log output (a4b5cdde)
- reporter: cache SourceMapConsumer (fe6ed7e5)
- runner:
  - serve context in JSON format for JS-only environments (189feffd)
  - provide error code on 'ECONNREFUSED' callback (439bddb1)
- server: improve public api (82cbbadd, closes #1037, #1482, #1467)
- watcher: Allow using braces in watcher (e046379b, closes #1249)
- web-server: Serve all files under urlRoot (1319b32d)

#### Breaking Changes

- The public api interface has changed to a constructor form. To upgrade change

  ```javascript var server = require(‘karma’).server server.start(config, done) ```

  to

  ```javascript var Server = require(‘karma’).Server var server = new Server(config, done) server.start() ```

  Closes #1037, #1482, #1467 (82cbbadd)

### 0.12.37 (2015-06-24)

#### Bug Fixes

- file_list: follow symlinks (ee267483)
- init: Make the requirejs config template normalize paths (54dcce31)
- middleware: Actually serve the favicon. (f12db639)

### 0.12.36 (2015-06-04)

#### Bug Fixes

- launcher: Continue with exit when SIGKILL fails (1eaccb4c)
- preprocessor: Lookup patterns once invoked (00a27813, closes #1340)

### 0.12.35 (2015-05-29)

#### Bug Fixes

- server: Start webserver and browsers after preprocessing completed (e0d2d239)

### 0.12.34 (2015-05-29)

#### Bug Fixes

- cli: Use `bin` field in package.json (6823926f, closes #1351)
- client: dynamic protocol for socket.io (c986eefe, closes #1400)
- deps: Update dependencies (b9a4ce98)

#### Features

- runner: Use favicon in static runner pages (6cded4f8)

### 0.12.33 (2015-05-26)

#### Bug Fixes

- catch exceptions from SourceMapConsumer (5d42e643)
- Safeguard IE against console.log (0b5ff8f6, closes #1209)
- config: Default remaining client options if any are set (632dd5e3, closes #961)
- init: fix test-main.(js/coffee) generation (d8521ef4, closes #1120, #896)

### 0.12.31 (2015-01-02)

#### Bug Fixes

- client: Fix stringify serializing objects (0d0972a5)

### 0.12.30 (2014-12-30)

#### Bug Fixes

- socket.io: Force 0.9.16 which works with Chrome (840ee5f7)

### 0.12.29 (2014-12-30)

#### Bug Fixes

- proxy: proxy to correct port (a483636e)
- watcher: Close file watchers on exit event (71810257)

### 0.12.28 (2014-11-25)

#### Bug Fixes

- server: complete acknowledgment (f4144b0d)

### 0.12.27 (2014-11-25)

#### Bug Fixes

- browser: don't add already active socket again on reconnect (37a7958a)
- reporter: sourcemap not working in windows (a9516af2)

### 0.12.26 (2014-11-25)

#### Bug Fixes

- cli: override if an arg is defined multiple times (31eb2c2c, closes #1192)

### 0.12.25 (2014-11-14)

#### Bug Fixes

- add emscripten memory image as binary suffix (f6b2b561)
- Wrap url.parse to always return an object for query property (72452e9f, closes #1182)
- client.html: always open debug.html in a new browser process (d176bcf4)
- preprocessor: calculate sha1 on content returned from a preprocessor (6cf79557, closes #1204)
- runner: Fix typo in CSS class name for .idle (fc5a7ce0)

### v0.12.24 (2014-09-30)

#### Bug Fixes

- Wrap url.parse to always return an object for query property (72452e9f, closes #1182)

### 0.12.23 (2014-08-28)

#### Bug Fixes

- file_list: Incorrect response after remove and add file (0dbc0201)
- preprocessor: Throw error if can't open file (bb4edde9)

#### Features

- init: install coffee-script automatically (e876db63, closes #1152)

### 0.12.22 (2014-08-19)

#### Bug Fixes

- preprocessor: treat *.tgz, *.tbz2, *.txz & *.xz as binary (7b642449)

### 0.12.21 (2014-08-05)

#### Bug Fixes

- web-server: cache static files (eb5bd53f)

### 0.12.20 (2014-08-05)

#### Bug Fixes

- config: #1113 Watching is not working properly on linux (c91ffbc0, closes #1113)
- preprocessor:
  - treat *.gz files as binary (1b56932f)
  - treat *.swf files as binary (62d7d387)

### 0.12.19 (2014-07-26)

#### Bug Fixes

- proxy: More useful proxyError log message (96640a75)

### 0.12.18 (2014-07-25)

#### Bug Fixes

- watcher: handle paths on Windows (6164d869)

### 0.12.17 (2014-07-11)

#### Bug Fixes

- logging: Summarize SKIPPED tests in debug.html. Before: hundreds of SKIPPING lines in con (a01100f5, closes #1111)
- server: Force clients disconnect on Windows (28239f42, closes #1109)
- travis_ci: converted node versions as string (25ee6fc9)

#### Features

- serve ePub as binary files (82ed0c6e)
- preprocessor: add 'mp3' and 'ogg' as binary formats to avoid media corruption in the browser. (65a0767e)

### v0.12.16 (2014-05-10)

#### Bug Fixes

- launcher: cancel kill timeout when process exits cleanly (bd662744, closes #946)

### v0.12.15 (2014-05-08)

#### Bug Fixes

- server: don't wait for socket.io store expiration timeout (cd30a422)

### v0.12.14 (2014-04-27)

#### Bug Fixes

- debug.html: Added whitespace after 'SKIPPED' (218ee859)

### v0.12.13 (2014-04-27)

#### Bug Fixes

- preprocessor: serve NaCl binaries (1cc6a1e3)

### v0.12.12 (2014-04-25)

#### Bug Fixes

- server: properly close flash transport (de89cd33)

### v0.12.11 (2014-04-25)

#### Bug Fixes

- preprocessor: remove ts from binary extensions (82698523)

### v0.12.10 (2014-04-23)

#### Bug Fixes

- server: clear web server close timeout on clean close (34123fed)

### v0.12.9 (2014-04-14)

#### Bug Fixes

- web-server: strip scheme, host and port (06a0da09)

### v0.12.8 (2014-04-14)

#### Bug Fixes

- web-server: inline the config, when serving debug.html (1eb36430)

### v0.12.7 (2014-04-14)

#### Bug Fixes

- don't crash/terminate upon errors within chokidar (2c389311)
- preprocessor: consider SVG files as text files, not binary files (ff288036, closes #1026)

### v0.12.6 (2014-04-09)

### v0.12.5 (2014-04-08)

#### Bug Fixes

- reporters: format fix for console log (d2d1377d, closes #934)

### v0.12.4 (2014-04-06)

#### Bug Fixes

- init: Fix type in init text (e34465b0, closes #954)

### v0.12.3 (2014-04-01)

#### Bug Fixes

- web-server: implement a timeout on webServer.close() (fe3dca78, closes #952)

#### Features

- web-server: run karma using multiple emulation modes, #631 (b9a2930a, closes #936)

### v0.12.2 (2014-03-30)

### v0.12.1 (2014-03-16)

#### Features

- preprocessor: Adding the `dat` file extension as a recognised binary. (be923571)

## v0.12.0 (2014-03-10)

#### Bug Fixes

- serving binary files (8a30cf55, closes #864, #885)
- config:
  - fail if client.args is set to a non array (fe4eaec0)
  - allow CoffeeScript 1.7 to be used (a1583dec)
- runner: Karma hangs when file paths have \u in them #924 (1199fc4d, closes #924)
- web-server:
  - detach listeners after running (3baa8e19)
  - close webserver after running (f9dee468)

#### Features

- remove dependency on coffee-script (af2d0e72)
- config: better error when Coffee/Live Script not installed (aca84dc9)
- init: generate test-main.(js/coffee) for RequireJS projects (85900c93)

### v0.11.14 (2014-02-04)

#### Features

- preprocessor: allow preprocessor to cancel test run (4d669bf3, closes #550)
- reporter: use spaces rather than tabs when formatting errors (112becf7)
- web-server: include html files as <link rel="import"> (03d7b106)

### v0.11.13 (2014-01-19)

#### Bug Fixes

- launcher: compatibility with old launchers (df557cec)

#### Features

- support LiveScript configuration (88deebe7)

### v0.11.12 (2013-12-25)

#### Bug Fixes

- client: show error if an adapter is removed (a8b250cf)

#### Features

- deps: update all deps (355a762c, closes #794)
- reporter: support source maps (rewrite stack traces) (70e4abd9, closes #594)
- watcher: use polling on Mac (66f50d7e)

### v0.11.11 (2013-12-23)

#### Bug Fixes

- events: resolve async events without any listener (4e4bba88)
- launcher:
  - compatibility with Node v0.8 (6a46be96)
  - compatibility with old launchers (ffb74800)

### v0.11.10 (2013-12-22)

#### Bug Fixes

- completion: add missin –log-level for karma init (1e79eb55)
- init: clean the terminal if killed (e2aa7497)

#### Features

- revert default usePolling to false (e88fbc24)
- config:
  - remove default preprocessors (coffee, html2js) (ada74d55)
  - Add the abillity to supress the client console. This adds the client config opti (4734962d, closes #744)
  - set default host/port from env vars (0a6a0ee4)
  - Allow tests be to run in a new window instead of iframe (471e3a8a)
- init:
  - install karma-coffee-preprocessor (29f5cf2d)
  - add nodeunit, nunit frameworks (b4da1a08)
  - install missing plugins (frameworks, launchers) (1ba70a6f)
- launcher: log how long it took each browser to capture (8dd54369)

#### Breaking Changes

- Karma does not ship with any plugin. You need to explicitly install all the plugins you need. `karma init` can help with this.

Removed plugins that need to be installed explicitly are:

- karma-jasmine
- karma-requirejs
- karma-coffee-preprocessor
- karma-html2js-preprocessor
- karma-chrome-launcher
- karma-firefox-launcher
- karma-phantomjs-launcher
- karma-script-launcher (e033d561)

### v0.11.9 (2013-12-03)

#### Features

- browser: add browserNoActivity configuration (bca8faad)

### v0.11.8 (2013-12-03)

#### Bug Fixes

- reporter: remove SHAs from stack traces (d7c31f97)
- web-server: correct caching headers for SHAs (bf27e80b)

#### Features

- web-server: disable gzip compression (5ee886bc)

### v0.11.7 (2013-12-02)

#### Bug Fixes

- keep all sockets in the case an old socket will survive (a5945ebc)
- reuse browser instance when restarting disconnected browser (1f1a8ebf)
- client: redirect to redirect_url after all messages are sent (4d05602c)

#### Features

- plugins: ignore some non-plugins package names (01776030)

### v0.11.6 (2013-12-01)

#### Bug Fixes

- config:
  - ignore empty string patterns (66c86a66)
  - apply CLI logger options as soon as we can (16179b08)
- preprocess: set correct extension for the preprocessed path (c9a64d2f, closes #843)

#### Features

- add `browserDisconnectTolerance` config option (19590e1f)
- make autoWatch true by default (8454898c)
- browser: improve logging (71b542ad)
- client: show error if no adapter is included (7213877f)
- web-server:
  - use SHA hash instead of timestamps (6e31cb24, closes #520)
  - cache preprocessed files (c786ee2e)

#### Breaking Changes

- `autoWatch` is `true` by default. If you rely on the default value being `false`, please set it in `karma.conf.js` explicitly to `false`. (8454898c)

### v0.11.5 (2013-11-25)

#### Bug Fixes

- do not execute already executing browsers (00136cf6)

#### Features

- launcher: send SIGKILL if SIGINT does not kill the browser (c0fa49aa)

### v0.11.4 (2013-11-21)

#### Bug Fixes

- browser: reply "start" event (4fde43de)

### v0.11.3 (2013-11-20)

#### Bug Fixes

- config: not append empty module if no custom launcher/rep/prep (ee15a4e4)
- watcher: allow parentheses in a pattern (438eb8dd, closes #728)

#### Features

- remove `karma` binary in favor of karma-cli (c7d46270)
- config: log if no config file is specified (ce4c5646)

#### Breaking Changes

- The `karma` module does not export `karma` binary anymore. The recommended way is to have local modules (karma and all the plugins that your project needs) stored in your `package.json`. You can run that particular Karma by `./node_modules/karma/bin/karma`. Or you can have `karma-cli` installed globally on your system, which enables you to use the `karma` command.

The global `karma` command (installed by `karma-cli`) does look for local version of Karma (including parent directories) first and fall backs to a global one.

The `bin/karma` binary does not look for any other instances of Karma and just runs the one that it belongs to.

(c7d46270)

### v0.11.2 (2013-11-03)

#### Bug Fixes

- config: use polling by default (53978c42)
- proxy: handle proxied socket.io websocket transport upgrade (fcc2a98f)

### v0.11.1 (2013-10-25)

#### Bug Fixes

- launcher kill method which was throwing an error if no callback was specified bu (5439f1cb)
- static: Use full height for the iFrame. Fix based on PR #714. (f95daf3c)
- watcher:
  - ignore double "add" events (6cbaac7a)
  - improve watching efficiency (6a272aa5, closes #616)

#### Features

- redirect client to "return_url" if specified (6af2c897)
- config: add usePolling config (18514d63)
- watcher: ignore initial "add" events (dde1da4c)

## v0.11.0 (2013-08-26)

#### Bug Fixes

- support reconnecting for manually captured browsers (a8ac6d2d)
- reporter: print browser stats immediately after it finishes (65202d87)

#### Features

- don't wait for all browsers and start executing immediately (8647266f, closes #57)

### v0.10.2 (2013-08-21)

#### Bug Fixes

- don't mark a browser captured if already being killed/timeouted (21230979, closes #88)

#### Features

- sync page unload (disconnect) (ac9b3f01)
- buffer result messages when polling (c4ad6970)
- allow browser to reconnect during the test run (cbe2851b, closes #82, #590)

### v0.10.1 (2013-08-06)

#### Bug Fixes

- cli: Always pass an instance of fs to processArgs. (06532b70, closes #677)
- init: set default filename (34d49b13, closes #680, #681)

## v0.10.0 (2013-08-06)

### v0.9.8 (2013-08-05)

#### Bug Fixes

- init: install plugin as dev dependency (46b7a402)
- runner: do not confuse client args with the config file (6f158aba)

#### Features

- config: default config can be karma.conf.js or karma.conf.coffee (d4a06f29)
- runner:
  - support config files (449e4a1a, closes #625)
  - add –no-refresh to disable re-globbing (b9c670ac)

### v0.9.7 (2013-07-31)

#### Bug Fixes

- init: trim the inputs (b72355cb, closes #663)
- web-server: correct urlRegex in custom handlers (a641c2c1)

#### Features

- basic bash/zsh completion (9dc1cf6a)
- runner: allow passing changed/added/removed files (b598106d)
- watcher: make the batching delay configurable (fa139312)

### v0.9.6 (2013-07-28)

#### Features

- pass command line opts through to browser (00d63d0b)
- web-server: compress responses (gzip/deflate) (8e8a2d44)

#### Breaking Changes

- `runnerPort` is merged with `port` if you are using `karma run` with custom `--runer-port`, please change that to `--port`. (ca4c4d88)

### v0.9.5 (2013-07-21)

#### Bug Fixes

- detect a full page reload, show error and recover (15d80f47, closes #27)
- better serialization in dump/console.log (fd46365d, closes #640)
- browsers_change event always has collection as arg (42bf787f)
- init: generate config with the new syntax (6b27fee5)
- reporter: prevent throwing exception when null is sent to formatter (3b49c385)
- watcher: ignore fs.stat errors (74ccc9a8)

#### Features

- capture window.alert (284c4f5c)
- ship html2js preprocessor as a default plugin (37ecf416)
- fail if zero tests executed (5670415e, closes #468)
- launcher: normalize quoted paths (f2155e0c, closes #491)
- web-server: serve css files (4e305545, closes #431)

### v0.9.4 (2013-06-28)

#### Bug Fixes

- config:
  - make the config changes backwards compatible (593ad853)
  - better errors if file invalid or does not exist (74b533be)
  - allow parsing the config multiple times (78a7094e)
- launcher: better errors when loading launchers (504e848c)
- preprocessor:
  - do not show duplicate warnings (47c641f7)
  - better errors when loading preprocessors (3390a00b)
- reporter: better errors when loading reporters (c645c060)

#### Features

- config: pass the config object rather than a wrapper (d2a3c854)

#### Breaking Changes

- please update your karma.conf.js as follows (d2a3c854):

// before:
module.exports = function(karma) {
karma.configure({port: 123});
karma.defineLauncher('x', 'Chrome', {
flags: ['--disable-web-security']
});
karma.definePreprocessor('y', 'coffee', {
bare: false
});
karma.defineReporter('z', 'coverage', {
type: 'html'
});
};
// after:
module.exports = function(config) {
config.set({
port: 123,
customLaunchers: {
'x': {
base: 'Chrome',
flags: ['--disable-web-security']
}
},
customPreprocessors: {
'y': {
base: 'coffee',
bare: false
}
},
customReporters: {
'z': {
base: 'coverage',
type: 'html'
}
}
});
};

### v0.9.3 (2013-06-16)

#### Bug Fixes

- capturing console.log on IE (fa4b686a, closes #329)
- config: fix the warning when using old syntax (5e55d797)
- init: generate correct indentation (5fc17957)
- launcher:
  - ignore exit code when killing/timeouting (1029bf2d, closes #444)
  - handle ENOENT error, do not retry (7d790b29, closes #452)
- logger: configure the logger as soon as possible (0607d67c)
- preprocessor: use graceful-fs to prevent EACCESS errors (279bcab5, closes #566)
- watcher: watch files that match watched directory (39401175, closes #521)

#### Features

- simplify loading plugins using patterns like `karma-*` (405a5a62)
- client: capture all `console.*` log methods (683e6dcb)
- config:
  - make socket.io transports configurable (bbd5eb86)
  - allow configurable launchers, preprocessors, reporters (76bdac16, closes #317)
  - add warning if old constants are used (7233c5fb)
  - require config as a regular module (a37fd6f7, closes #304)
- helper: improve useragent detection (eb58768e)
- init:
  - generate coffee config files (d2173717)
  - improve the questions a bit (baecadb2)
- proxy: add https proxy support (be878dc5)

#### Breaking Changes

- Update your karma.conf.js to export a config function (a37fd6f7):

module.exports = function(karma) {
karma.configure({
autoWatch: true,
// ...
});
};

### v0.9.2 (2013-04-16)

#### Bug Fixes

- better error reporting when loading plugins (d9078a8e)
- config:
  - Separate ENOENT error handler from others (e49dabe7)
  - ensure basePath is always resolved (2e5c5aaa)

#### Features

- allow inlined plugins (3034bcf9)
- debug: show skipped specs and failure details in the console (42ab936b)

### v0.9.1 (2013-04-04)

#### Bug Fixes

- init: to not give false warning about missing requirejs (562607a1)

#### Features

- ship coffee-preprocessor and requirejs as default plugins (f34e30db)

## v0.9.0 (2013-04-03)

#### Bug Fixes

- global error handler should propagate errors (dec0c196, closes #368)
- config:
  - Check if configFilePath is a string. Fixes #447. (98724b6e)
  - do not change urlRoot even if proxied (8c138b50)
- coverage: always send a result object (62c3c679, closes #365)
- init:
  - generate plugins and frameworks config (17798d55)
  - fix for failing "testacular init" on Windows (0b5b3853)
- preprocessor: resolve relative patterns to basePath (c608a9e5, closes #382)
- runner: send exit code as string (ca75aafd, closes #403)

#### Features

- display the version when starting (39617395, closes #391)
- allow multiple preprocessors (1d17c1aa)
- allow plugins (125ab4f8)
- config:
  - always ignore the config file itself (103bc0f8)
  - normalize string preprocessors into an array (4dde1608)
- web-server: allow custom file handlers and mime types (2df88287)

#### Breaking Changes

- reporters, launchers, preprocessors, adapters are separate plugins now, in order to use them, you need to install the npm package (probably add it as a `devDependency` into your `package.json`) and load in the `karma.conf.js` with ‘plugins = ['karma-jasmine’, ...]`. Karma ships with couple of default plugins (karma-jasmine, karma-chrome-launcher, karma-phantomjs-launcher).
- frameworks (such as jasmine, mocha, qunit) are configured using ‘frameworks = ['jasmine’];`instead of prepending`JASMINE_ADAPTER` into files.

## v0.8.0 (2013-03-18)

#### Breaking Changes

- rename the project to "Karma":
- whenever you call the "testacular" binary, change it to "karma", eg. `testacular start` becomes `karma start`.
- if you rely on default name of the config file, change it to `karma.conf.js`.
- if you access `__testacular__` object in the client code, change it to `__karma__`, eg. `window.__testacular__.files` becomes `window.__karma__.files`. (026a20f7)

### v0.6.1 (2013-03-18)

#### Bug Fixes

- config: do not change urlRoot even if proxied (1be1ae1d)
- coverage: always send a result object (2d210aa6, closes #365)
- reporter.teamcity: report spec names and proper browser name (c8f6f5ea)

## v0.6.0 (2013-02-22)

### v0.5.11 (2013-02-21)

#### Bug Fixes

- adapter.requirejs: do not configure baseUrl automatically (63f3f409, closes #291)
- init: add missing browsers (Opera, IE) (f39e5645)
- reporter.junit: Add browser log output to JUnit.xml (f108799a, closes #302)

#### Features

- add Teamcity reporter (03e700ae)
- adapter.jasmine: remove only last failed specs anti-feature (435bf72c, closes #148)
- config: allow empty config file when called programmatically (f3d77424, closes #358)

### v0.5.10 (2013-02-14)

#### Bug Fixes

- init: fix the logger configuration (481dc3fd, closes #340)
- proxy: fix crashing proxy when browser hangs connection (1c78a01a)

#### Features

- set urlRoot to /__karma__/ when proxying the root (8b4fd64d)
- adapter.requirejs: normalize paths before appending timestamp (94889e7d)
- update dependencies to the latest (93f96278, e34d8834)

### v0.5.9 (2013-02-06)

#### Bug Fixes

- adapter.requirejs: show error if no timestamp defined for a file (59dbdbd1)
- init: fix logger configuration (557922d7)
- reporter: remove newline from base reporter browser dump (dfae18b6, closes #297)
- reporter.dots: only add newline to message when needed (dbe1155c

#### Features

- add "debug" button to easily open debugging window (da85aab9)
- config: support running on a custom hostname (b8c5fe85)
- reporter.junit: add a 'skipped' tag for skipped testcases (6286406e, closes #321)

### v0.5.8

- Fix #283
- Suppress global leak for istanbul
- Fix growl reporter to work with `testacular run`
- Upgrade jasmine to 1.3.1
- Fix file sorting
- Fix #265
- Support for more mime-types on served static files
- Fix opening Chrome on Windows
- Upgrade growly to 1.1.0

### v0.5.7

- Support code coverage for qunit.
- Rename port-runner option in cli to runner-port
- Fix proxy handler (when no proxy defined)
- Fix #65

### v0.5.6

- Growl reporter !
- Batch changes (eg. `git checkout` causes only single run now)
- Handle uncaught errors and disconnect all browsers
- Global binary prefers local versions

### v0.5.5

- Add QUnit adapter
- Report console.log()

### v0.5.4

- Fix PhantomJS launcher
- Fix html2js preprocessor
- NG scenario adapter: show html output

### v0.5.3

- Add code coverage !

### v0.5.2

- Init: ask about using Require.js

### v0.5.1

- Support for Require.js
- Fix testacular init basePath

## v0.5.0

- Add preprocessor for LiveScript
- Fix JUnit reporter
- Enable process global in config file
- Add OS name in the browser name
- NG scenario adapter: hide other outputs to make it faster
- Allow config to be written in CoffeeScript
- Allow espaced characters in served urls

## v0.4.0 (stable)

### v0.3.12

- Allow calling run() pragmatically from JS

### v0.3.11

- Fix runner to wait for stdout, stderr
- Make routing proxy always changeOrigin

### v0.3.10

- Fix angular-scenario adapter + junit reporter
- Use flash socket if web socket not available

### v0.3.9

- Retry starting a browser if it does not capture
- Update mocha to 1.5.0
- Handle mocha's xit

### v0.3.8

- Kill browsers that don't capture in captureTimeout ms
- Abort build if any browser fails to capture
- Allow multiple profiles of Firefox

### v0.3.7

- Remove Travis hack
- Fix Safari launcher

### v0.3.6

- Remove custom launcher (constructor)
- Launcher - use random id to allow multiple instances of the same browser
- Fix Firefox launcher (creating profile)
- Fix killing browsers on Linux and Windows

### v0.3.5

- Fix opera launcher to create new prefs with disabling all pop-ups

### v0.3.4

- Change "reporter" config to "reporters"
- Allow multiple reporters
- Fix angular-scenario adapter to report proper description
- Add JUnit xml reporter
- Fix loading files from multiple drives on Windows
- Fix angular-scenario adapter to report total number of tests

### v0.3.3

- Allow proxying files, not only directories

### v0.3.2

- Disable autoWatch if singleRun
- Add custom script browser launcher
- Fix cleaning temp folders

### v0.3.1

- Run tests on start (if watching enabled)
- Add launcher for IE8, IE9

## v0.3.0

- Change browser binaries on linux to relative
- Add report-slower-than to CLI options
- Fix PhantomJS binary on Travis CI

## v0.2.0 (stable)

### v0.1.3

- Launch Canary with crankshaft disabled
- Make the captured page nicer

### v0.1.2

- Fix jasmine memory leaks
- support __filename and __dirname in config files

### v0.1.1

- Report slow tests (add `reportSlowerThan` config option)
- Report time in minutes if it's over 60 seconds
- Mocha adapter: add ability to fail during beforeEach/afterEach hooks
- Mocha adapter: add dump()
- NG scenario adapter: failure includes step name
- Redirect /urlRoot to /urlRoot/
- Fix serving with urlRoot

## v0.1.0

- Adapter for AngularJS scenario runner
- Allow serving Testacular from a subpath
- Fix race condition in testacular run
- Make testacular one binary (remove `testacular-run`, use `testacular run`)
- Add support for proxies
- Init script for generating config files (`testacular init`)
- Start Firefox without custom profile if it fails
- Preserve order of watched paths for easier debugging
- Change default port to 9876
- Require node v0.8.4+

### v0.0.17

- Fix race condition in manually triggered run
- Fix autoWatch config

### v0.0.16

- Mocha adapter
- Fix watching/resolving on Windows
- Allow glob patterns
- Watch new files
- Watch removed files
- Remove unused config (autoWatchInterval)

### v0.0.15

- Remove absolute paths from urls (fixes Windows issue with C:\)
- Add browser launcher for PhantomJS
- Fix some more windows issues

### v0.0.14

- Allow require() inside config file
- Allow custom browser launcher
- Add browser launcher for Opera, Safari
- Ignore signals on windows (not supported yet)

### v0.0.13

- Single run mode (capture browsers, run tests, exit)
- Start browser automatically (chrome, canary, firefox)
- Allow loading external files (urls)

### v0.0.12

- Allow console in config
- Warning if pattern does not match any file

### v0.0.11

- Add timing (total / net - per specs)
- Dots reporter - wrap at 80

### v0.0.10

- Add DOTS reporter
- Add no-colors option for reporters
- Fix web server to expose only specified files

### v0.0.9

- Proper exit code for runner
- Dynamic port asigning (if port already in use)
- Add log-leve, log-colors cli arguments + better –help
- Fix some IE errors (indexOf, forEach fallbacks)

### v0.0.8

- Allow overriding configuration by cli arguments (+ –version, –help)
- Persuade IE8 to not cache context.html
- Exit runner if no captured browser
- Fix delayed execution (streaming to runner)
- Complete run if browser disconnects
- Ignore results from previous run (after server reconnecting)
- Server disconnects - cancel execution, clear browser info

### v0.0.7

- Rename to Testacular

### v0.0.6

- Better debug mode (no caching, no timestamps)
- Make dump() a bit better
- Disconnect browsers on SIGTERM (kill, killall default)

### v0.0.5

- Fix memory (some :-D) leaks
- Add dump support
- Add runner.html

### v0.0.4

- Progress bar reporting
- Improve error formatting
- Add Jasmine lib (with iit, ddescribe)
- Reconnect client each 2sec, remove exponential growing

### v0.0.3

- Jasmine adapter: ignore last failed filter in exclusive mode
- Jasmine adapter: add build (no global space pollution)

### 0.0.2

- Run only last failed tests (jasmine adapter)

### 0.0.1

- Initial version with only very basic features