Wondering what‚Äôs next for npm?Check out our public roadmap! ¬Ľ

    grunt-cordova-jasmine

    0.1.0¬†‚Äʬ†Public¬†‚Äʬ†Published

    grunt-cordova-jasmine

    Build Status 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.

    Note that when selecting a specific cordova version, the framework app of cordova-android requires a specific target sdk to be installed. Make sure that this target sdk is installed in your environment. In the example which is shipped with the project, the cordova version is set to be 3.0.0. This means that you must have android target sdk android-17 installed in your environment, since cordova-android version 3.0.0 requires the target sdk android-17.

    Example

    The example folder contains a sample example which depicts how to use this plugin. This example is running on Travis CI

    Release History

    0.1.0

    Released 01 November 2013

    • Initial release

    Keywords

    none

    Install

    npm i grunt-cordova-jasmine

    DownloadsWeekly Downloads

    0

    Version

    0.1.0

    License

    none

    Last publish

    Collaborators

    • avatar