Environment Setup

Node.js

Node.js v8.0 or higher.

iOS

Important

Xcode v9 or higher is required.

  • usbmuxd is needed in order to testing real iOS device via USB.
$ brew install usbmuxd
$ brew install ideviceinstaller
$ brew install ios-webkit-debug-proxy
  • debug log will be displayed when '--verbose' is set as an argument when initiating macaca.

iOS Real Device

  • Download XCTestWD
    • If XCTestWD is a dependency of another package, use environmental variable to pass in the location of XCTestWD, refer to the XCTestWD doc
      • For example, MACACA_XCTESTWD_ROOT_PATH=/path/to/macaca_xctest app-inspector -u xxx --verbose
    • Alternatively, find it in the relevant node_modules
    • For example, in the case of globally installed app-inspector, it is at /usr/local/lib/node_modules/app-inspector/node_modules/xctestwd
  • Open /XCTestWD/XCTestWD.xcodeproj with XCode
  • Import developer certificate
  • Execute Run Test to import XCTestWDUITest into the real device

  • Install macaca-ios with TEAM_ID, find TEAM_ID in XCode after importing XCTestWDUITest into the real device:

$ DEVELOPMENT_TEAM_ID=TEAM_ID npm i macaca-ios -g
  • If you need to run iOS tests, also remember to pass in relevant parameters for real device in desiredCaps, such as udid, bundleId and app.

More details

Refer to this issue for more details

Android

  • Install the latest JDK 1.8 (Java 9 is not supported)
  • Set the JAVA_HOME environment variable in your ~/.bashrc, ~/.bash_profile, ~/.zshrc or whatever your shell uses:
# for example
export JAVA_HOME=path/to/your/Java/Home
# or
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
  • Install the Android SDK and Android Support Repository, using any of the versions within 18-25
  • Set the ANDROID_HOME environment variable in your ~/.bashrc, ~/.bash_profile, ~/.zshrc or whatever your shell uses:
# for example
export ANDROID_HOME=/usr/local/opt/android-sdk
# or
export ANDROID_HOME="/Users/<UserName>/Library/Android/sdk"

gradle is needed in order to build UIAutomatorWD and other package.(For Windows Users plz download gradle installer and set PATH environment variable.)

$ brew install gradle
  • If you got a error like [You have not accepted the license agreements of the following SDK components] on your install command [npm i macaca-android -g],plz accept all Android SDK licenses uses command below, and retry install.
$ yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

ChromeDriver

Default Version

Macaca Cli

Global Installation

$ npm i -g macaca-cli

If you saw the picture below, congratulations! Macaca has been installed successfully!

Local Installation

$ npm i macaca-cli --save-dev

# start Macaca
$ ./node_modules/.bin/macaca run --verbose

Driver Installation

# please run below for newer npm
$ npm i macaca-ios -g

Environment

Let's check the version and verify the environment.

# show version
$ macaca -v

# verify environment
$ macaca doctor

Prepare Application

iOS: An valid iOS application package suffixed with .app.

Android: An valid Android application package suffixed with .apk.

Desktop: All web application could be run with initial url.

Last Updated: 5/18/2019, 4:51:50 PM