You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Fastlane运行的UITest失败测试报告中添加截图

Fastlane UITest 失败用例添加截图到测试报告方案

完全可以实现,按以下步骤配置即可:

1. 配置Fastlane Scan参数

Scan是Fastlane内置的测试执行组件,你可以在Fastfile的scan调用中添加以下配置,也可以直接写入Scanfile全局生效:

lane :run_ui_tests do
  scan(
    workspace: "你的项目.xcworkspace", # 替换为你的项目 workspace 路径
    scheme: "你的UITestScheme", # 替换为你的UITest对应的scheme
    capture_screenshots: true, # 启用测试截图捕获
    output_types: "html", # 输出HTML格式报告,方便直接查看截图
    output_directory: "./fastlane/test_output", # 报告和截图的输出路径
    screenshot_output_directory: "./fastlane/test_output/failure_screenshots", # 可选,单独指定失败截图存储路径
    clean: true # 可选,运行前清理构建缓存,避免旧资源影响
  )
end

2. (可选)添加XCUITest代码兜底截图

如果想要更稳定的截图捕获效果,可以在你的UITest基类的tearDown方法中添加手动截图逻辑,测试失败时主动把截图存入XCTAttachment:

override func tearDown() {
    super.tearDown()
    // 判断当前测试用例是否执行失败
    if self.testRun?.hasFailed ?? false {
        // 捕获当前屏幕全图
        let fullScreenshot = XCUIScreen.main.screenshot()
        let screenshotAttachment = XCTAttachment(screenshot: fullScreenshot)
        // 设置截图永久保留,不会被Xcode自动清理
        screenshotAttachment.lifetime = .keepAlways
        // 把截图添加到当前测试用例的附件中
        add(screenshotAttachment)
    }
}

3. 查看带截图的测试报告

运行上述lane之后,打开./fastlane/test_output/report.html即可看到每个失败的测试用例下方都附带了对应的失败时刻截图,效果如下:
失败测试用例附截图示例

注意:请确保你使用的Fastlane版本 >= 2.180.0,旧版本存在截图和失败用例匹配错误的已知问题

内容的提问来源于stack exchange,提问作者SergeyVerigin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:27:02