/karma-osx-reporter

Report Karma test runner results to OSX Notification Center

Primary LanguageJavaScriptMIT LicenseMIT

karma-osx-reporter

Reporter using Mac OS 10.8+ Notification Center to display results.

image

Built on top of node-osx-notifier and based on AvnerCohen's code.

Only works with Karma 0.9 or later which enables custom plugins.

For more information on Karma see the homepage.

Installation

  1. 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.

  1. 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

OSX Notifier runs on localhost:1337 by default. If you need to change that, simply override it in the config.

config.set({
  ...

  osxReporter: {
    host: "localhost",
    port: 1337
  }

  ...
});

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