xcode - Xcode 中的批量 UI 测试
问题描述
我想批量 UI 测试(现在,我想单元测试会在一段时间内有用)
到目前为止,Xcode UI 测试和“fastlane scan”似乎都没有对此提供任何固有的支持。有没有好的简单的方法?
情况
我需要测试某个 UI 测试 N 次。
现实世界的情况
我需要测试某个 UI 测试 100 次并在批处理结束时获得输出:
- 多少次迭代成功/失败
- 失败迭代的任何日志
我尝试过的(现在正在做的)
在 fastfile 中,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)
}
部分想法来自Automatically Running a Test Case Many Times in Xcode。
推荐阅读
- angular7 - Angular 6 无法使用本地参考禁用启用输入
- php - 使用 mysql_data_seek 时 PHP Extra 1 空行
- python - 如何在 Python 中使用 Paramiko 时使 EllipticCurvePublicNumbers.encode_point CryptographyDeprecationWarning 静音
- excel - Excel 条件格式 - 间接地址公式
- javascript - 如何不将点击事件传递给响应的孩子?
- tensorflow - Keras:带有 predict_generator 的混淆矩阵
- php - Laravel / Blade:标签/空格未正确包含
- c# - 为什么我的 Unity 项目会失去与 Git 的脚本和资产的连接?
- javascript - 为什么 SpeechSynthesisUtterance 有时不会在基于 Chromium 的浏览器中触发“结束”事件?
- android - 添加滑翔依赖项时出现问题