node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

karma-cordova-launcher

karma-cordova-launcher

Run your unit tests on Android, iOS, etc using Apache Cordova

Installation

Install karma-cordova-launcher as a devDependency in your package.json:

npm install karma-cordova-launcher --save-dev

Note: This plugin currently depends on cordova being on your PATH. You can install cordova globally by:

npm install -g cordova

Usage

This launcher is typically used to test your unit tests locally on a mobile device emulator. It is expected that you are already familiar with Karma when configuring this launcher, so if you are new to Karma, head over to the Karma website.

Adding karma-cordova-launcher to an existing Karma config

To configure this launcher, you need to add the cordovaSettings property to your top-level Karma config. The browsers array needs to include Cordova.

The cordovaSettings object defines global settings for Cordova. Here is a sample Karma config to get the launcher running:

module.exports = function(config) {
  // Example set of mobile platforms to run on Cordova 
  config.set({
    // The rest of your karma config is here 
    // ... 
    cordovaSettings: {
      platforms: ['android', 'ios'],
      mode: 'emulate',
      hostip: '10.0.2.2',
      target: '0468de2a213eae29',
      plugins: [
        'org.apache.cordova.console'
      ]
    },
    browsers: ['Cordova'],
    reporters: ['dots', 'progress']
    singleRun: true
  });
};

mode can be either 'run' or 'emulate' (emulate by default), target is used to specify a target device (optional), hostip is the ip of the machine running the karma server as accessible from the emualted/physical device (the default one used by the Android emulator is used by default, for Genymotion use 10.0.3.2).

Example karma-cordova-launcher configs

For example configs using this launcher, check out the Grunt and Karma configuration for freedom-for-chrome

cordovaSettings config properties

platforms

Type: Array of String Default: []

An array of Cordova platforms to test on. For valid values, see Cordova Platform Support

plugins

Type: Array of String Default: []

An array of Cordova plugins to install. For valid plugins, see the Cordova Plugins Registry

Runtime FAQ

  • What platforms have been tested?
    • Android L on Ubuntu 14.04LTS with Cordova 3.5.0
    • Must set an SD card and "Use Host GPU" in device settings
  • Where is the Cordova project generated?
    • The project is stored here: /tmp/cordova_test/. Delete it to start fresh