能否在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
相关产品推荐
相关产品推荐

