npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

grunt-cordova-jasmine

v0.1.0

Published

Automate Jasmine test suite execution for Cordova plugins inside emulators/devices

Downloads

3

Readme

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