6.4.4 (2024-07-29)
6.4.3 (2024-02-24)
- add build commits for patch release (d7f2d69)
6.4.2 (2023-04-21)
- few typos (c6a4271)
6.4.1 (2022-09-19)
- pass integrity value (63d86be)
6.4.0 (2022-06-14)
6.3.20 (2022-05-13)
6.3.19 (2022-04-19)
- client: error out when opening a new tab fails (099b85e)
6.3.18 (2022-04-13)
- deps: upgrade socket.io to v4.4.1 (52a30bb)
6.3.17 (2022-02-28)
6.3.16 (2022-02-10)
- security: mitigate the "Open Redirect Vulnerability" (ff7edbb)
6.3.15 (2022-02-05)
- helper: make mkdirIfNotExists helper resilient to concurrent calls (d9dade2), closes /github.com/karma-runner/karma-coverage/issues/434#issuecomment-1017939333
6.3.14 (2022-02-05)
- remove string template from client code (91d5acd)
- warn when
singleRun
andautoWatch
arefalse
(69cfc76) - security: remove XSS vulnerability in
returnUrl
query param (839578c)
6.3.13 (2022-01-31)
6.3.12 (2022-01-24)
- remove depreciation warning from log4js (41bed33)
6.3.11 (2022-01-13)
- deps: pin colors package to 1.4.0 due to security vulnerability (a5219c5)
6.3.10 (2022-01-08)
6.3.9 (2021-11-16)
6.3.8 (2021-11-07)
- reporter: warning if stack trace contains generated code invocation (4f23b14)
6.3.7 (2021-11-01)
6.3.6 (2021-10-25)
6.3.5 (2021-10-20)
6.3.4 (2021-06-14)
6.3.3 (2021-06-01)
- server: clean up vestigial code from proxy (#3640) (f4aeac3), closes /tools.ietf.org/html/std66#section-3
6.3.2 (2021-03-29)
- fix running tests in IE9 (#3668) (0055bc5), closes /github.com/karma-runner/karma/blob/026fff870913fb6cd2858dd962935dc74c92b725/client/main.js#L14 #3665
6.3.1 (2021-03-24)
6.3.0 (2021-03-23)
6.2.0 (2021-03-10)
6.1.2 (2021-03-09)
- commitlint: skip task on master (#3650) (3fc6fda)
- patch karma to allow loading virtual packages (#3663) (5bfcf5f)
6.1.1 (2021-02-12)
- config: check extension before ts-node register (#3651) (474f4e1), closes #3329
- report launcher process error when exit event is not emitted (#3647) (7ab86be)
6.1.0 (2021-02-03)
6.0.4 (2021-02-01)
- cli: temporarily disable strict parameters validation (#3641) (9c755e0), closes #3625
- client: fix a false positive page reload error in Safari (#3643) (2a57b23)
- ensure that Karma supports running tests on IE 11 (#3642) (dbd1943)
6.0.3 (2021-01-27)
6.0.2 (2021-01-25)
6.0.1 (2021-01-20)
- server: set maxHttpBufferSize to the socket.io v2 default (#3626) (69baddc), closes #3621
- restore
customFileHandlers
provider (#3624) (25d9abb)
6.0.0 (2021-01-13)
- ci: abandon browserstack tests for Safari and IE (#3615) (04a811d)
- client: do not reset karmaNavigating in unload handler (#3591) (4a8178f), closes #3482
- context: do not error when karma is navigating (#3565) (05dc288), closes #3560
- cve: update ua-parser-js to 0.7.23 to fix CVE-2020-7793 (#3584) (f819fa8)
- cve: update yargs to 16.1.1 to fix cve-2020-7774 in y18n (#3578) (3fed0bc), closes #3577
- deps: bump socket-io to v3 (#3586) (1b9e1de), closes #3569
- middleware: catch errors when loading a module (#3605) (fec972f), closes #3572
- server: clean up close-server logic (#3607) (3fca456)
- test: clear up clearContext (#3597) (8997b74)
- test: mark all second connections reconnects (#3598) (1c9c2de)
- cli: error out on unexpected options or parameters (#3589) (603bbc0)
- client: update banner with connection, test status, ping times (#3611) (4bf90f7)
- server: print stack of unhandledrejections (#3593) (35a5842)
- server: remove deprecated static methods (#3595) (1a65bf1)
- remove support for running dart code in the browser (#3592) (7a3bd55)
- server: Deprecated
require('karma').server.start()
andrequire('karma').Server.start()
variants were removed from the public API. Instead use canonical form:
const { Server } = require('karma');
const server = new Server();
server.start();
- cli: Karma is more strict and will error out if unknown option or argument is passed to CLI.
- Using Karma to run Dart code in the browser is no longer supported. Use your favorite Dart-to-JS compiler instead.
dart
file type has been removed without a replacement.
customFileHandlers
DI token has been removed. Use middleware
to achieve similar functionality.
customScriptTypes
DI token has been removed. It had no effect, so no replacement is provided.
- deps: Some projects have socket.io tests that are version sensitive.
5.2.3 (2020-09-25)
5.2.2 (2020-09-08)
5.2.1 (2020-09-02)
- remove broken link from docs - 06-angularjs.md (#3555) (da2f307)
- remove unused JSON utilities and flatted dependency (#3550) (beed255)
5.2.0 (2020-08-31)
- client: avoid race between execute and clearContext (#3452) (8bc5b46), closes #3424
- client: check in bundled client code into version control (#3524) (6cd5a3b), closes /github.com/karma-runner/karma/commit/f5521df7df5cd1201b5dce28dc4e326b1ffc41fd#commitcomment-38967493
- dependencies: update dependencies (#3543) (5db46b7)
- docs: Update 03-how-it-works.md (#3539) (e7cf7b1)
- server: log error when file loading or preprocessing fails (#3540) (fc2fd61)
5.1.1 (2020-07-28)
5.1.0 (2020-06-11)
5.0.9 (2020-05-19)
5.0.8 (2020-05-18)
- dependencies: update and unlock socket.io dependency (#3513) (b60391f)
- dependencies: update to latest log4js major (#3514) (47f1cb2)
5.0.7 (2020-05-16)
5.0.6 (2020-05-16)
5.0.5 (2020-05-07)
5.0.4 (2020-04-30)
5.0.3 (2020-04-29)
5.0.2 (2020-04-16)
5.0.1 (2020-04-10)
5.0.0 (2020-04-09)
- 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
- use native Promise instead of Bluebird (#3436) (33a069f), closes /github.com/karma-runner/karma/pull/3060#discussion_r284797390
- 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
- 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.
4.4.1 (2019-10-18)
- 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)
4.4.0 (2019-10-17)
- 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)
4.3.0 (2019-08-27)
- 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)
- 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
4.2.0 (2019-07-12)
- 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)
4.1.0 (2019-04-15)
- 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
4.0.1 (2019-02-28)
- 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)
4.0.0 (2019-01-23)
- client: fix issue with loaded on safari 10 (#3252) (571191c), closes #3198
- config: add test:unit npm script (#3242) (02f071d)
- Drop Support for Node 6, to make it possible to use async/await in karma codebase.
3.1.4 (2018-12-17)
- 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)
3.1.3 (2018-12-01)
3.1.2 (2018-12-01)
- 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
3.1.1 (2018-10-23)
3.1.0 (2018-10-22)
- 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)
- 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)
3.0.0 (2018-08-09)
- 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)
- Drop Support for Nodejs4 (#3082)
2.0.5 (2018-07-24)
- 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)
2.0.4 (2018-06-21)
- 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)
2.0.3 (2018-06-15)
The 2.03. change log was incorrectly created due to an extra pending tag in the repo.
2.0.2 (2018-04-19)
2.0.1 (2018-04-19)
- 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)
- 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)
1.7.1 (2017-08-25)
- 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)
- 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 withws[@1](https://github.com/1).1.2
(264442b), closes #2593 - watcher: Debounce autoWatchBatchDelay (2f8c049), closes #2331
2.0.0 (2017-12-21)
- 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)
- 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 withws@1.1.2
(264442b), closes #2593 - watcher: Debounce autoWatchBatchDelay (2f8c049), closes #2331
1.7.1 (2017-08-30)
1.7.0 (2017-05-06)
- middleware: change to use vanilla for loop (ac62cc0), closes #2671
- reporters: Revert the backwards-incompatible log priority order changes (316b944), closes #2582
- runner: Buffer stdout and stderr for output when errors occur (460d423)
1.6.0 (2017-04-05)
- 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)
- browser: add browser_info event (09ac7d7), closes #2192
- launcher: output stderr for failing launchers (7d33398)
- proxy: add proxy events to config (f5d99fb)
1.5.0 (2017-02-20)
- 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
- add an option to run the tests by dynamically loading test scripts without iframe (aa42c41)
- add support for node@7 (eb407ab), closes #2559
1.4.1 (2017-01-29)
- 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
- config: allow config to be a default export (9976dce)
1.4.0 (2017-01-14)
- 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
- 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
1.3.0 (2016-09-09)
- launcher: exclude concurrent browser on launcher restart (96f8f14), closes #2280
- middleware: ensure Range headers adhere more closely to RFC 2616 (8b1b4b1), closes #2310
- reporter: add config formatError function (98a4fbf), closes #2119
- upstreamProxy config option to deal with proxies that adjust the base path, etc (55755e4)
1.2.0 (2016-08-11)
- 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
1.1.2 (2016-07-26)
- 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
1.1.1 (2016-07-07)
- 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)
1.1.0 (2016-06-26)
- deps: freeze socket.io version (73e300d)
- server: log browser messages to the terminal (d1f924c), closes #2187
- Allow frameworks to inject middleware (d972f3d)
1.0.0 (2016-06-23)
- 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
- context: Future-proofed context.html and debug.html for modularity (43f6a1a)
- 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)
- context: Our
context.html
anddebug.html
structures have changed to lean oncontext.js
anddebug.js
. This is in preparation for deepercontext.js
changes in #1984.
As a result, all customContextFile
and customDebugFile
options much update their format
to match this new format.
0.13.22 (2016-03-08)
0.13.21 (2016-02-12)
- "Merge pull request #1791 from budde377/feature-adding-no-colors-to-run-command" (96ebdc4), closes #1894 #1895
0.13.20 (2016-02-12)
- 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)
- 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
0.13.19 (2016-01-06)
0.13.18 (2016-01-05)
- 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
0.13.17 (2016-01-04)
0.13.16 (2015-12-24)
- 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
- proxy: Allow proxies configuration to be an object (ad94356)
- proxy: Allow to configure changeOrigin option of http-proxy (ae05ea4), closes #1729
0.13.15 (2015-11-03)
- eslint: Fix formatting for the new ESLint 1.8.0 (dc1bbab)
0.13.14 (2015-10-22)
- client: Revert back to old reloading detection (f1c22d6)
- client: Wait for childwindow to load (c1bb15a)
0.13.13 (2015-10-22)
0.13.12 (2015-10-22)
- proxy: Pass protocol in target object to enable https requests (142db90)
- reporter: preserve base/absolute word in error (b3798df)
- 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
- config: Error when browers option isn't array (b695460)
- file-list: refresh resolves before 'file_list_modified' event (65f1eca), closes #1550
- reporter: Enable sourcemaps for errors that without column # (086a542)
- client: Use supported shim path. (184f12e)
- web-server: Ensure
filesPromise
is always resolvable (892fa89), closes #1544
- file-list: Ensure autowatchDelay is working. (655599a), closes #1520
- file-list: use lodash find() (3bd15a7), closes #1533
- web-server: Allow running on https (1696c78)
- 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
- restore backward compatibility for karma@0.13 (648b357a)
- 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)
- file-list:
- upgrade http-proxy module for bug fixes (09c75fe1)
- cli: print UserAgent string verbatim if from an unknown browser (9d972263)
- client:
- 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)
- 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:
- 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)
-
The public api interface has changed to a constructor form. To upgrade change
var server = require(‘karma’).server server.start(config, done)
to
var Server = require(‘karma’).Server var server = new Server(config, done) server.start()
Closes #1037, #1482, #1467 (82cbbadd)
- file_list: follow symlinks (ee267483)
- init: Make the requirejs config template normalize paths (54dcce31)
- middleware: Actually serve the favicon. (f12db639)
- launcher: Continue with exit when SIGKILL fails (1eaccb4c)
- preprocessor: Lookup patterns once invoked (00a27813, closes #1340)
- server: Start webserver and browsers after preprocessing completed (e0d2d239)
- cli: Use
bin
field in package.json (6823926f, closes #1351) - client: dynamic protocol for socket.io (c986eefe, closes #1400)
- deps: Update dependencies (b9a4ce98)
- runner: Use favicon in static runner pages (6cded4f8)
- 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)
- client: Fix stringify serializing objects (0d0972a5)
- socket.io: Force 0.9.16 which works with Chrome (840ee5f7)
- server: complete acknowledgment (f4144b0d)
- browser: don't add already active socket again on reconnect (37a7958a)
- reporter: sourcemap not working in windows (a9516af2)
- 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)
- file_list: Incorrect response after remove and add file (0dbc0201)
- preprocessor: Throw error if can't open file (bb4edde9)
- preprocessor: treat *.tgz, *.tbz2, *.txz & *.xz as binary (7b642449)
- web-server: cache static files (eb5bd53f)
- proxy: More useful proxyError log message (96640a75)
- watcher: handle paths on Windows (6164d869)
- 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)
- serve ePub as binary files (82ed0c6e)
- preprocessor: add 'mp3' and 'ogg' as binary formats to avoid media corruption in the browser. (65a0767e)
- server: don't wait for socket.io store expiration timeout (cd30a422)
- debug.html: Added whitespace after 'SKIPPED' (218ee859)
- preprocessor: serve NaCl binaries (1cc6a1e3)
- server: properly close flash transport (de89cd33)
- preprocessor: remove ts from binary extensions (82698523)
- server: clear web server close timeout on clean close (34123fed)
- web-server: strip scheme, host and port (06a0da09)
- web-server: inline the config, when serving debug.html (1eb36430)
- don't crash/terminate upon errors within chokidar (2c389311)
- preprocessor: consider SVG files as text files, not binary files (ff288036, closes #1026)
- preprocessor: Adding the
dat
file extension as a recognised binary. (be923571)
- serving binary files (8a30cf55, closes #864, #885)
- config:
- runner: Karma hangs when file paths have \u in them #924 (1199fc4d, closes #924)
- web-server:
- 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)
- 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 (03d7b106)
- launcher: compatibility with old launchers (df557cec)
- support LiveScript configuration (88deebe7)
- client: show error if an adapter is removed (a8b250cf)
- deps: update all deps (355a762c, closes #794)
- reporter: support source maps (rewrite stack traces) (70e4abd9, closes #594)
- watcher: use polling on Mac (66f50d7e)
- events: resolve async events without any listener (4e4bba88)
- launcher:
- completion: add missin --log-level for karma init (1e79eb55)
- init: clean the terminal if killed (e2aa7497)
- revert default usePolling to false (e88fbc24)
- config:
- init:
- launcher: log how long it took each browser to capture (8dd54369)
- 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)
- browser: add browserNoActivity configuration (bca8faad)
- reporter: remove SHAs from stack traces (d7c31f97)
- web-server: correct caching headers for SHAs (bf27e80b)
- web-server: disable gzip compression (5ee886bc)
- 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)
- plugins: ignore some non-plugins package names (01776030)
- 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:
autoWatch
istrue
by default. If you rely on the default value beingfalse
, please set it inkarma.conf.js
explicitly tofalse
. (8454898c)
- do not execute already executing browsers (00136cf6)
- launcher: send SIGKILL if SIGINT does not kill the browser (c0fa49aa)
- browser: reply "start" event (4fde43de)
- config: not append empty module if no custom launcher/rep/prep (ee15a4e4)
- watcher: allow parentheses in a pattern (438eb8dd, closes #728)
- remove
karma
binary in favor of karma-cli (c7d46270) - config: log if no config file is specified (ce4c5646)
- The
karma
module does not exportkarma
binary anymore. The recommended way is to have local modules (karma and all the plugins that your project needs) stored in yourpackage.json
. You can run that particular Karma by./node_modules/karma/bin/karma
. Or you can havekarma-cli
installed globally on your system, which enables you to use thekarma
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)
- config: use polling by default (53978c42)
- proxy: handle proxied socket.io websocket transport upgrade (fcc2a98f)
- 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:
- redirect client to "return_url" if specified (6af2c897)
- config: add usePolling config (18514d63)
- watcher: ignore initial "add" events (dde1da4c)
- support reconnecting for manually captured browsers (a8ac6d2d)
- reporter: print browser stats immediately after it finishes (65202d87)
- sync page unload (disconnect) (ac9b3f01)
- buffer result messages when polling (c4ad6970)
- allow browser to reconnect during the test run (cbe2851b, closes #82, #590)
- cli: Always pass an instance of fs to processArgs. (06532b70, closes #677)
- init: set default filename (34d49b13, closes #680, #681)
- init: install plugin as dev dependency (46b7a402)
- runner: do not confuse client args with the config file (6f158aba)
- config: default config can be karma.conf.js or karma.conf.coffee (d4a06f29)
- runner:
- init: trim the inputs (b72355cb, closes #663)
- web-server: correct urlRegex in custom handlers (a641c2c1)
- basic bash/zsh completion (9dc1cf6a)
- runner: allow passing changed/added/removed files (b598106d)
- watcher: make the batching delay configurable (fa139312)
- pass command line opts through to browser (00d63d0b)
- web-server: compress responses (gzip/deflate) (8e8a2d44)
runnerPort
is merged withport
if you are usingkarma run
with custom--runer-port
, please change that to--port
. (ca4c4d88)
- 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)
- 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)
- config:
- launcher: better errors when loading launchers (504e848c)
- preprocessor:
- reporter: better errors when loading reporters (c645c060)
- config: pass the config object rather than a wrapper (d2a3c854)
- 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'
}
}
});
};
- capturing console.log on IE (fa4b686a, closes #329)
- config: fix the warning when using old syntax (5e55d797)
- init: generate correct indentation (5fc17957)
- launcher:
- 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)
- simplify loading plugins using patterns like
karma-*
(405a5a62) - client: capture all
console.*
log methods (683e6dcb) - config:
- helper: improve useragent detection (eb58768e)
- init:
- proxy: add https proxy support (be878dc5)
- Update your karma.conf.js to export a config function (a37fd6f7):
module.exports = function(karma) {
karma.configure({
autoWatch: true,
// ...
});
};
- better error reporting when loading plugins (d9078a8e)
- config:
- allow inlined plugins (3034bcf9)
- debug: show skipped specs and failure details in the console (42ab936b)
- init: to not give false warning about missing requirejs (562607a1)
- ship coffee-preprocessor and requirejs as default plugins (f34e30db)
- global error handler should propagate errors (dec0c196, closes #368)
- config:
- coverage: always send a result object (62c3c679, closes #365)
- init:
- preprocessor: resolve relative patterns to basePath (c608a9e5, closes #382)
- runner: send exit code as string (ca75aafd, closes #403)
- display the version when starting (39617395, closes #391)
- allow multiple preprocessors (1d17c1aa)
- allow plugins (125ab4f8)
- config:
- web-server: allow custom file handlers and mime types (2df88287)
-
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 yourpackage.json
) and load in thekarma.conf.js
withplugins = ['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 prependingJASMINE_ADAPTER
into files.
- rename the project to "Karma":
- whenever you call the "testacular" binary, change it to "karma", eg.
testacular start
becomeskarma 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
becomeswindow.__karma__.files
. (026a20f7)
- 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)
- 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)
- 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)
- init: fix the logger configuration (481dc3fd, closes #340)
- proxy: fix crashing proxy when browser hangs connection (1c78a01a)
- set urlRoot to /karma/ when proxying the root (8b4fd64d)
- adapter.requirejs: normalize paths before appending timestamp (94889e7d)
- update dependencies to the latest (93f96278, e34d8834)
- 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
- 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)
- 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
- Support code coverage for qunit.
- Rename port-runner option in cli to runner-port
- Fix proxy handler (when no proxy defined)
- Fix #65
- Growl reporter !
- Batch changes (eg.
git checkout
causes only single run now) - Handle uncaught errors and disconnect all browsers
- Global binary prefers local versions
- Add QUnit adapter
- Report console.log()
- Fix PhantomJS launcher
- Fix html2js preprocessor
- NG scenario adapter: show html output
- Add code coverage !
- Init: ask about using Require.js
- Support for Require.js
- Fix testacular init basePath
- 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
- Allow calling run() pragmatically from JS
- Fix runner to wait for stdout, stderr
- Make routing proxy always changeOrigin
- Fix angular-scenario adapter + junit reporter
- Use flash socket if web socket not available
- Retry starting a browser if it does not capture
- Update mocha to 1.5.0
- Handle mocha's xit
- Kill browsers that don't capture in captureTimeout ms
- Abort build if any browser fails to capture
- Allow multiple profiles of Firefox
- Remove Travis hack
- Fix Safari launcher
- 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
- Fix opera launcher to create new prefs with disabling all pop-ups
- 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
- Allow proxying files, not only directories
- Disable autoWatch if singleRun
- Add custom script browser launcher
- Fix cleaning temp folders
- Run tests on start (if watching enabled)
- Add launcher for IE8, IE9
- Change browser binaries on linux to relative
- Add report-slower-than to CLI options
- Fix PhantomJS binary on Travis CI
- Launch Canary with crankshaft disabled
- Make the captured page nicer
- Fix jasmine memory leaks
- support __filename and __dirname in config files
- 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
- Adapter for AngularJS scenario runner
- Allow serving Testacular from a subpath
- Fix race condition in testacular run
- Make testacular one binary (remove
testacular-run
, usetestacular 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+
- Fix race condition in manually triggered run
- Fix autoWatch config
- Mocha adapter
- Fix watching/resolving on Windows
- Allow glob patterns
- Watch new files
- Watch removed files
- Remove unused config (autoWatchInterval)
- Remove absolute paths from urls (fixes Windows issue with C:\)
- Add browser launcher for PhantomJS
- Fix some more windows issues
- Allow require() inside config file
- Allow custom browser launcher
- Add browser launcher for Opera, Safari
- Ignore signals on windows (not supported yet)
- Single run mode (capture browsers, run tests, exit)
- Start browser automatically (chrome, canary, firefox)
- Allow loading external files (urls)
- Allow console in config
- Warning if pattern does not match any file
- Add timing (total / net - per specs)
- Dots reporter - wrap at 80
- Add DOTS reporter
- Add no-colors option for reporters
- Fix web server to expose only specified files
- 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)
- 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
- Rename to Testacular
- Better debug mode (no caching, no timestamps)
- Make dump() a bit better
- Disconnect browsers on SIGTERM (kill, killall default)
- Fix memory (some :-D) leaks
- Add dump support
- Add runner.html
- Progress bar reporting
- Improve error formatting
- Add Jasmine lib (with iit, ddescribe)
- Reconnect client each 2sec, remove exponential growing
- Jasmine adapter: ignore last failed filter in exclusive mode
- Jasmine adapter: add build (no global space pollution)
- Run only last failed tests (jasmine adapter)
- Initial version with only very basic features