如何在模拟器和实际设备上的CI中运行不同的方案?

时间:2015-02-03 22:20:50

标签: continuous-integration calabash-android

我们正在使用calabash-android对我们的Android应用程序运行黄瓜场景。某些方案需要物理设备,而其他方案仅在模拟器上运行良好。我们如何配置构建,以便标记@requires_device的场景在物理设备上运行但不在模拟器上运行?

1 个答案:

答案 0 :(得分:1)

如果您使用Jenkins作为CI服务器,以下是我们为使Calabash与真实设备进行竞争而采取的措施:

  • 创建一个奴隶,这是一台本地机器
  • 将您的设备连接到此从属计算机(多个设备也可以正常工作)
  • 构建您的Jenkins以运行在slave机器上执行Calabash的作业: ADB_DEVICE_ARG=device_id;calabash-android ...
    可以从device_id命令
  • 检索adb devices

由于模拟器也有device_id,因此这种方法允许您选择模拟器或真实设备来运行所有测试。在某些设备上运行选择性测试更加棘手,可能需要您运行单独的calabash-android命令。