Skip to content

mikamai/cordova-test

Repository files navigation

cordova-test Build Status

cli-tool to automate Appium tests suite for Cordova apps

Install

npm install -g cordova-test

Usage

Inside your cordova application folder

cordova-test <platform> <relative_path_to_tests_dir_or_file> 
  [--no-compile]
  [--babel use babel transpiler]
  [--teamcity use mocha-teamcity-reporter] 
  [--device iOS build for device/emulator]
  [--env environment files_regex]
  [--sauce user accessKey]
  [--udid ios_udid]
  [--device-name device name]
  [--platform-version platform version]

Environment

As default cordova-test will run the tests with mocha, but it can also be integrated to run with any other environment you want by setting the --env param.

For ex.:

$ cordova-test android tests/tape --env tape *.js
$ cordova-test android tests/python --env python *.py

Example

As an example we create a simple Hello World app with cordova,

cordova create example com.urucas.testexample TestExample
cordova platform add android

and add a few elements to the index.html

Now, we create 2 appium tests to run with mocha, the first one will check that some elements on the index.html are displayed, and the second test will click on a button and check a text is changed.

Inside our cordova project root folder run cordova-test android tests/mocha and wait for the tests result.

Thats all!

cordova-test will compile the cordova app, verify the requested environment, create the test capabilities and run all the tests.

Integrate with Sauce Labs

Set your Sauce Labs user and access key to run the tests suite in Sauce Labs mobile devices.

For ex.

$ cordova-test android tests/mocha --sauce SAUCE_USER SAUCE_ACCESSKEY

Before running the tests, cordova-test will upload the compiled app to Sauce Labs Storage, and update the platform capabilities.

Requirements

Local testing

iOS

  • xcode command-line tools

Babel

  • To use the babel transpiler and es2015 in your tests you need to install these dependencies in your Cordova project:
npm i --save-dev babel-core babel-plugin-transform-async-to-generator babel-polyfill babel-preset-es2015
  • .babel.rc config:
{
 "presets": ["react", "es2015"],
 "plugins": ["transform-async-to-generator"]
}

Team City

  • Use the --teamcity flag to activate the mocha-teamcity-reporter. Install the dependency in the target project before using the flag:
npm i mocha-teamcity-reporter --save-dev