我们正在使用calabash-android来针对我们的Android应用程序运行黄瓜场景。 某些方案需要物理设备,而其他方案仅在模拟器上运行良好。 我们如何配置构建,以便标记为@requires_device的方案在物理设备上运行,但不在模拟器上运行?
如果你使用 Jenkins 作为你的 CI 服务器,下面是我们让 Calabash 在真实设备上运行的步骤:
- 创建一个从属计算机,这是一台本地机器
- 将您的设备连接到此从属机器(多个设备也应该可以工作)
- 构建你的 Jenkins 来运行一个在从属机器上执行 Calabash 的作业:
ADB_DEVICE_ARG=device_id;calabash-android ...
可以从adb devices
命令中检索device_id
由于模拟器也有device_id
,这种方法允许您选择模拟器或真实设备来运行所有测试。在某些设备上运行选择性测试更加棘手,可能需要运行单独的calabash-android
命令。