Xcode

时间:2018-05-18 08:03:11

标签: xcode xcode-ui-testing fastlane fastlane-scan

我想批量UI测试(现在,我猜单元测试会有用一段时间)

Xcode UI测试和" fastlane扫描"到目前为止似乎对此有任何固有的支持。有一个好的和简单的方法吗?

场合

我需要测试一次特定的UI测试N次。

真实世界的情况

我需要测试100次特定的UI测试并在批处理结束时获得输出:

  • 多少次迭代成功/失败
  • 失败迭代的任何日志

我尝试过(现在正在做)

在快速文件中,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 个答案:

答案 0 :(得分: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)
}

部分来自Automatically Running a Test Case Many Times in Xcode的想法。