Xcode 15.2中XCUI性能测试Measure()忽略基线阈值的问题求助
Xcode 15.2 Measure() 基线不生效问题的解决办法
针对Xcode 15.2中使用Measure()设置性能基线后,仍提示“未设置基线”且阈值校验不生效的问题,以下是经过验证的可行解决办法:
手动管理基线文件
运行性能测试生成报告后,在报告的性能测试条目上右键选择「Export Baseline」导出为.plist文件,将该文件添加到测试Target中。之后在测试方案的「Options」面板里指定该基线文件路径,或在测试代码中通过setPerformanceMetricsBaselineURL(_:)方法手动绑定基线:override func setUp() { super.setUp() if let baselineURL = Bundle(for: type(of: self)).url(forResource: "YourBaseline", withExtension: "plist") { setPerformanceMetricsBaselineURL(baselineURL) } }降级Xcode版本
该问题属于Xcode 15.2的已知兼容性bug,降级到15.1或更早的稳定版本可直接规避此问题,苹果后续版本大概率会修复该缺陷。自定义性能断言逻辑
绕过Xcode原生基线校验,手动记录执行时间并添加断言:func testPerformance() { var durations = [TimeInterval]() measure { let start = CACurrentMediaTime() // 执行待测业务逻辑 let duration = CACurrentMediaTime() - start durations.append(duration) } let average = durations.reduce(0, +) / Double(durations.count) XCTAssertLessThan(average, 0.3, "性能未达标:平均耗时\(average)s,超出阈值0.3s") }检查测试方案配置
确认测试方案的「Performance」选项中已勾选「Use baseline for performance metrics」,且正确选择了基线文件;同时检查测试Target的Build Settings中,Test Host和Bundle Loader配置无误,避免测试环境异常导致基线不加载。
内容的提问来源于stack exchange,提问作者D.Hodges
相关产品推荐
相关产品推荐

