Можно ли выполнять iOS XCUITesting на нескольких симуляторах одновременно? - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть приложение, которое на производстве будет на пяти разных устройствах, общаясь друг с другом с помощью 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()

}

Но это только запустило приложение один за другим, после одного, в том же Симуляторе.

Итак, есть ли способ добиться одновременного XCUITest на нескольких устройствах Simulator? (Желательно в Xcode / Swift, но другие опции также будут работать).

1 Ответ

0 голосов
/ 09 ноября 2018

Да, начиная с Xcode 10, вы можете запустить параллельное тестирование

  1. Выберите вашу целевую схему в XCode и «Изменить схему ...»
  2. Найдите настройки для «Тест» и нажмите на вкладке «Информация»
  3. Вы увидите список своих юнит-тестов и тестов пользовательского интерфейса, нажмите на соответствующий Кнопка «Настройки ...»
  4. Выберите «Выполнить параллельно на симуляторе»
  5. При желании выберите «Рандомизировать порядок выполнения»

Options

...