0.1.0 • Published 10 years ago

grunt-cordova-jasmine v0.1.0

Weekly downloads
1
License
-
Repository
github
Last release
10 years ago

grunt-cordova-jasmine NPM version

This project contains a Grunt plugin which automates Jasmine Test Suite execution for Apache Cordova plugins. Currently only the Android part is implemented.

You can find a relevant video which depicts the execution procedure here.

Getting Started

This plugin assumes that Android SDK, Ant and Git are already configured in the execution environment.

The plugin requires Grunt ~0.4.1

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-cordova-jasmine --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-cordova-jasmine');

execute-jasmine-suite task

This task configures the Cordova libraries, sets the given Cordova version, creates a Cordova project, installs the given plugin and executes the configured Jasmine test suite inside emulators and devices. You can execute the task by using:

execute-jasmine-suite:jasmine-suite-1 where jasmine-suite-1 is the jasmine id as shown below

grunt.initConfig({
    grunt_cordova_jasmine: {
        jasmine: [{
            id: "jasmine-suite-1",
            project: {
                android: {
                    targetDir: "./temp/projects/cordova-android",
                    name: "CordovaAndroid",
                    package_name: "org.example.cordova.android",
                    sdk: 'android-18',
                    cordova_version: "3.0.0"
                }
            },
            plugin_test: {
                targetDir: "./temp/plugins",
                testsDir: "./tests",
                testsuite: "index.html",
                plugin: '../aerogear-pushplugin-cordova'
            },
            platforms: ["android"],
            device_ids: {
                android: [/*"emulator-5554", "emulator-5558"*/]
            }
        }],
        cordova_libs: {
            android: {
                path: '',
                git: {
                    url: "https://github.com/tolis-e/cordova-android.git",
                    targetDir: "./temp/cordova-libraries"
                }
            }
        }
    }
});

Gruntfile Configuration

jasmine.id

Type: String
Description: A custom identifier which helps the plugin to read the correct configuration from the Gruntfile
Usage: required

jasmine.project.android.targetDir

Type: String
Description: Specifies the directory of the new Cordova Android project which is created by the plugin
Usage: required

jasmine.project.android.name

Type: String
Description: Specifies the main activity name
Usage: required

jasmine.project.android.package_name

Type: String Description: Specifies the project's package
Usage: required

jasmine.project.android.sdk

Type: String
Description: Specifies the target SDK
Usage: optional

jasmine.project.android.cordova_version

Type: String
Description: Specifies the Cordova version
Usage: optional
This plugin has been tested for Cordova versions >=3.0.0

jasmine.plugin_test.targetDir

Type: String
Description: Specifies the directory to hold the fetched plugin
Usage: required

jasmine.plugin_test.testsDir

Type: String
Description: Specifies the directory which contains all the test resources (Jasmine Test Suite, JS libraries etc)
Usage: required

jasmine.plugin_test.testsuite

Type: String
Description: Specifies the Jasmine Test Suite which will be executed inside the emulators/devices
Usage: required

jasmine.plugin_test.plugin

Type: String
Description: Local path of the plugin which is under testing or the Cordova plugin's registry id
Usage: required

jasmine.cordova_libs.android.path

Type: String
Description: Local path of the cordova-android library
Usage: optional
If this setting is not provided, the cordova-android library will be cloned from GitHub

jasmine.cordova_libs.android.git.url

Type: String
Description: GitHub URL of the repository which holds the cordova-android library
Usage: optional

jasmine.cordova_libs.android.git.targetDir

Type: String Description: The directory to hold the cloned cordova-android repository
Usage: optional

If cordova_libs_android_path is defined, then cordova_libs.git.url && cordova_libs.git.targetDir settings are ignored. If all settings are empty then the proccess stops with a failure status.

jasmine.platforms

Type: Array
Description: Specifies the target platforms
Currently only android is supported

jasmine.device_ids.android

Type: Array
Description: Specifies the emulator/device serial numbers in which the Jasmine Suite should be executed.
If it is empty, the tests will be executed inside all the available emulators/devices recognized during the process execution.

Important Notes

The plugin expects that the Jasmine Test Suite contains the Jasmine HTML reporter.

<script type="text/javascript" src="whatever/HtmlReporter.js"></script>

or

<script type="text/javascript" src="whatever/jasmine-html.js"></script>

The Html reporter name should match one of the following regular expressions:

jasmine([^>]*)html([^>]*)js or HtmlReporter([^>]*)js

In addition the plugin searches for a Jasmine addReporter and adds a custom reporter after this line.

Example

The example folder contains a sample example which depicts how to use this plugin.

Release History

0.1.0

Released 01 November 2013

  • Initial release