/run_loop

The bridge between Calabash iOS and Xcode command-line tools like instruments and simctl.

Primary LanguageJavaScriptOtherNOASSERTION

master develop versioning license contributing dependencies
Build Status Build Status GitHub version License Contributing Dependency Status

Run Loop

Requirements

  • Xcode 7.
  • ruby >= 2.0

The most recent versions of Xcode and ruby are strongly recommended.

License

Run Loop is available under the MIT license. See the LICENSE file for more info.

Licenses for third-party software can be found in ./vendor-licenses.

Versioning

Run Loop follows the spirit of Semantic Versioning. [1] However, the semantic versioning spec is incompatible with RubyGem's patterns for pre-release gems.[2]

"But returning to the practical: No release version of SemVer is compatible with Rubygems." - David Kellum

If a method, class, or constant is marked with:

# @!visibility private

it is not part of the public API and the behavior is subject to change at any time.

For Run Loop Gem Developers

IMPORTANT note to devs RE: udidetect submodule

The current head of the udidetect head does not include the udidetect binary.

If you are compelled to update, you must rebuild and replace the scripts/udidetect binary.

At this time, there is no reason to update.

Building Device Agent Resources

It is your responsibility for checking the git branch.

$ rake device_agent:install

Tests

CI

Unit Tests

$ be rake unit

Integration Tests

Take a break because these test launch and quit the simulator multiple times. You have enough time to take some deep breaths and do some stretching. You'll feel better afterward.

For continuous TDD/BDD see the Guard section below.

$ be rake integration
Device Testing
  • Requires ideviceinstaller.
  • Requires devices to be connected with USB.
  • Each compatible device will be targeted with tests.
  • These are integration tests
Regression vs. Xcode version

If you have alternative Xcode installs that look like this:

/Xcode/5.1/Xcode.app
/Xcode/5.1.1/Xcode.app
/Xcode/6.1.1/Xcode.app
/Xcode/6.2/Xcode-Beta.app
/Xcode/6.3/Xcode-Beta.app

the rspec tests will do regression testing against each version.

Guard

Requires MacOS Growl - available in the AppStore.

$ be guard

Only the unit tests are run by guard.