选择要为calabash-ios运行的设备

时间:2014-11-07 07:03:38

标签: objective-c cucumber calabash calabash-ios

如何使用cucumber选择要运行calabash-ios的设备?

2 个答案:

答案 0 :(得分:2)

如果您想在真实设备上运行calabash-ios,您需要设置几个环境变量

BUNDLE_ID=com.bundle.id.for.your.app DEVICE_ENDPOINT=http://192.168.1.111:37265 calabash-ios console your_app.ipa

这将打开calabash控制台。使用命令start_test_server_in_background将打开应用程序(必须已在您的设备上安装)。

您需要设置包ID,以便calabash知道要打开哪个应用。您需要将DEVICE_ENDPOINT设置为设备的wifi地址,以便calabash知道在应用程序打开后如何与应用程序进行交互。

如果你想在模拟器上运行calabash,那么fabb的答案应该涵盖它。

根据来自@jmoody的评论修改http端点

答案 1 :(得分:1)

要在特定模拟器上运行,只需在启动DEVICE_TARGET时设置cucumber env var。

要找出哪些设备可用,您可以在终端中执行instruments -s devices

在我的项目中,我运行cucumber两次,一次用于iPad,一次用于iPhone。我这样做的方式如下:

#!/bin/bash
set -x

cd ${0%/*}/..

: ${APP_BUNDLE_PATH:?"Need to set APP_BUNDLE_PATH"}

export DEBUG=1

SCREENSHOT_PATH_IPHONE=`pwd`/calabash_screenshots/iphone/
SCREENSHOT_PATH_IPAD=`pwd`/calabash_screenshots/ipad/

mkdir -p ${SCREENSHOT_PATH_IPHONE}
mkdir -p ${SCREENSHOT_PATH_IPAD}

export RESET_BETWEEN_SCENARIOS=1 

SCREENSHOT_PATH=${SCREENSHOT_PATH_IPHONE} DEVICE_TARGET="iPhone 6 (8.1 Simulator)" bundle exec cucumber --tags @ios_phone -p ios
SCREENSHOT_PATH=${SCREENSHOT_PATH_IPAD} DEVICE_TARGET="iPad Retina (8.1 Simulator)" bundle exec cucumber --tags @ios_tablet -p ios

请注意,这取决于功能文件中设置的cucumber.yml和相应标记@ios_phone@ios_tablet