Пакетные тесты пользовательского интерфейса в Xcode

Я хотел бы пакетные тесты пользовательского интерфейса (сейчас, я думаю, юнит-тесты были бы полезны когда-нибудь)

Похоже, что ни тесты пользовательского интерфейса XCode, ни "fastlane scan" не имеют никакой внутренней поддержки для этого на данный момент. Есть хороший и простой подход?

ситуация

Мне нужно протестировать определенный тест пользовательского интерфейса N раз.

Ситуация в реальном мире

Мне нужно протестировать определенный тест пользовательского интерфейса 100 раз и получить вывод в конце пакета:

  • сколько итераций удалось / не удалось
  • любые журналы неудачных итераций

Что я пробовал (и делаю сейчас)

В фастфайле, fastlane scan может быть использован как это для пакетирования. Однако выходные файлы все попадают в отдельные каталоги, и это будет довольно (?) Работа, объединяющая все эти результаты. Это не как scan возвращает логическое значение или что-либо, обозначающее статус успеха теста? (Также на самом деле сканирование, скорее всего, не поддерживает запуск определенного теста, он запускает их все)

100.times do |index|
    puts "Running test iteration #{index}..."
    scan(scheme: schemefortesting,
        output_directory: "fastlane/tests/test_output_#{index}",
        destination: 'name=Myrealworldiphonename'
    )
end

1 ответ

Насколько я знаю, это не поддерживается. Я полагаю, что лучшим способом сделать это было бы создание метода для выполнения теста, а затем многократное его выполнение, отслеживание результатов в целом и запись в консоль. Что-то вроде:

func runTheTest() -> Bool {
    app.launch()
    // Run your test
    let passing = // Make your asserts
    return passing
}

func testManyTimes() {
    var allTestsPassing = true
    for n in 0...100 {
        let thisLoopPassing = runTheTest()
        print("Loop \(n) returned \(thisLoopPassing)")
        allTestsPassing = allTestsPassing && thisLoopPassing
    }
    XCTAssertTrue(allTestsPassing)
}

Идея частично взята из Автоматического запуска тестового примера много раз в Xcode.

Другие вопросы по тегам