我想批量 UI 测试(现在,我想单元测试会在一段时间内有用)
到目前为止,Xcode UI测试和"fastlane scan"似乎都没有任何固有的支持。有没有一个好的和简单的方法?
情况
我需要测试某个 UI 测试 N 次。
真实世界的情况
我需要测试某个 UI 测试 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
据我所知,不支持这一点。我想最好的方法是制作一种方法来执行测试,然后让测试用例运行多次,跟踪整体结果并记录到控制台。像这样:
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中多次自动运行测试用例。