illuminator

Illuminator enables continuous integration for iOS apps by improving the UIAutomation framework.


License
Apache-2.0
Install
gem install illuminator -v 0.1.0

Documentation

Gem Version Build Status

ILLUMINATOR - the iOS Automator

Illuminator enables continuous integration for iOS apps. It makes it easy (well, easier) to write and debug sophisticated app tests. Additionally, it makes the entire UIAutomation apparatus more capable of handling high-volume automated testing -- providing features that are missing from Apple's "Instruments" application.

Top 3 features

1. Ease of accessing and interacting with UI elements

Illuminator is inspired by tuneup.js (see the migration guide) and mechanic.js, combining and improving the best features of both. Accessing UI elements can be done relative to a root element, by a fuzzy search of the element tree (easily extensible for app-specific capabilities), or by some combination of the two -- even if the element has not yet appeared on the screen.

2. Ease of scripting and executing test scenarios across different target devices

Test scenarios in Illuminator are easy to create and easy to read (and if you need to generate hundreds of test cases, it can be done programmatically instead of manually). Managing a large test bank is simple as well; Illuminator can run test scenarios by name or by tag, and (intelligently) on either iPad or iPhone targets. Illuminator can even complete test runs in which the app crashes during one of the tests.

3. The ability to remote-control your app

There are some test actions that can't be done through screen interactions alone (e.g. events that would put your app into the background; anything involving the camera, microphone, or other external devices; triggering network events to happen at planned intervals). Illuminator provides an RPC channel to expose these interactions -- enabling data to be passed betweent the app and the test script as appropriate.

Other Features

  • JUnit-formatted test reports
  • Cobertura-formatted coverage reports
  • Screenshot comparison capability with the ability to mask certain screen areas

Further Documentation

Help

Where-to-post summary: