karma-osx-reporter
v0.2.1
Published
A Karma plugin. Report results with OSX Notification Center.
Downloads
2,975
Maintainers
Readme
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.
```sh
npm install -g karma
npm install -g karma-osx-reporter
```
b. Locally to your project (preferred). Simply run:
```sh
npm install karma --save-dev
npm install karma-osx-reporter --save-dev
```
or add the dependencies to `package.json` manually and run `npm install`:
```js
"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