是否可以同时在多个模拟器设备上进行iOS XCUITesting?

eiv*_*dml 2 ios ios-simulator swift xcuitest

我有一个应用程序,它将在五个不同的设备上生产,使用相互交谈MultipeerConnectivity.我有一个bash脚本,可以在五个不同的模拟器上启动应用程序.这很好用,但是我每次都要点击每个设备来测试所有内容.

所以我想也许XCUITest可以帮助自动执行此操作,并删除这些外部bash脚本依赖项(希望在Xcode/Swift中执行所有操作).我试过这样一个天真的方法:

func testExample() {
    // Use recording to get started writing UI tests.
    // Use XCTAssert and related functions to verify your tests produce the correct results.

  let app1 = XCUIApplication(bundleIdentifier: "com.madebymist.qdb-ios")
  let app2 = XCUIApplication(bundleIdentifier: "com.madebymist.qdb-ios")
  app1.launch()
  app1.buttons["Select Group"].tap()
  app1.sheets.buttons["Group one"].tap()
  app1.buttons["Host"].tap()

  // Launch and test App 2
  app2.launch()
  app2.buttons["Select Group"].tap()
  app2.sheets.buttons["Group one"].tap()
  app2.buttons["Join"].tap()

}
Run Code Online (Sandbox Code Playgroud)

但是,这只是在同一个模拟器中逐个推出应用程序.

那么,有没有办法在多个模拟器设备上同时实现XCUITest?(最好在Xcode/Swift中,但其他选项也可以使用).

小智 5

是的,因为Xcode 10你可以运行并行测试

  1. 在Xcode中选择目标方案,然后选择"编辑方案......"
  2. 找到"测试"的设置,然后按"信息"选项卡
  3. 您将看到单元和UI测试的列表,按下相关的"选项..."按钮
  4. 选择"在Simulator上并行执行"
  5. (可选)选择"随机执行顺序"

选项

  • @eivindml我想你应该问另一个关于"手动继续自动UI测试"的问题;) (3认同)