karma-osx-reporter
Reporter using Mac OS 10.8+ Notification Center to display results.
Built on top of node-osx-notifier and based on AvnerCohen's code.
Works with Karma 0.9 or later.
For more information on Karma see the homepage.
Installation
Install Karma and karma-osx-reporter plugin.
a. Globally. System-wide with
karma
available on command line.npm install -g karma npm install -g karma-osx-reporter
b. Locally to your project (preferred). Simply run:
npm install karma --save-dev npm install karma-osx-reporter --save-dev
or add the dependencies to
package.json
manually and runnpm install
:"devDependencies": { "karma": ">=0.9", "karma-osx-reporter": "*" }
If you install locally, you'll need to run Karma using
node_modules/karma/bin/karma
.In any case, the plugin needs to be installed as a peer dependency to Karma (i.e. in the sibling folder). This just means you cannot use global Karma with local plugins or vice-versa.
Add it as a reporter in the config file
reporters: ['progress', 'osx']
or pass through the command line
$ karma start --reporters=progress,osx karma.conf.js
Configuration
Host and Port
OSX Notifier runs on localhost:1337 by default. If you need to change that, simply override it in the Karma config file.
config.set({
osxReporter: {
host: "localhost",
port: 1337
}
});
Notification Mode
always
- always show a notificationchange
- show a notification when the current result is different than the lastfailOnly
- show a notification if the result is failfailChange
- show a notification when the result is fail or first success after fail
config.set({
osxReporter: {
notificationMode: 'always'
}
})
Additional Options
Any additional parameter will be passed to node-osx-notifier. Check the documentation for details. Some examples:
config.set({
osxReporter: {
activate: 'com.apple.Terminal',
open: 'http://google.com',
execute: 'open .'
}
});
To decide dynamically what to pass into these options, define them as functions:
config.set({
osxReporter: {
activate: function(results, browser) {
return results.failed > 0 ? 'com.apple.Terminal' : 'com.apple.Safari';
}
}
});
License
MIT License