- 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