iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Xcode UI测试:在谓词失败时自动拍摄快照?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

每当测试失败时, Xcode UI TesTing都会在结果导航器中自动截取屏幕,这非常有用.但是,这不包括由于谓词失败而失败的测试.由于谓词通常用于基本检查(例如,当前视图中是否存在元素),这是一个巨大的缺点,因为屏幕截图可用于诊断测试失败时应用程序中发生的情况. 有谁知道如何强制截图?这是否需要集成Fastlane快照工具? 您不必为此集成Fastlane Snapshot. Snapshot
每当测试失败时,Xcode UI TesTing都会在结果导航器中自动截取屏幕,这非常有用.但是,这不包括由于谓词失败而失败的测试.由于谓词通常用于基本检查(例如,当前视图中是否存在元素),这是一个巨大的缺点,因为屏幕截图可用于诊断测试失败时应用程序中发生的情况.

有谁知道如何强制截图?这是否需要集成Fastlane快照工具?

解决方法

您不必为此集成Fastlane Snapshot. Snapshot用于强制截屏的唯一技巧是触发此代码

XCUIDevice.shared().orientation = .unkNown

这不会像Snapshot documentation上所述那样改变UI.

不幸的是,如果您对谓词使用期望并且将此代码放入waitForExpectations(timeout:handler :)处理程序关闭并且我不知道原因,那么这将不起作用.

解决此问题,您可以创建自己的XCTestObservation处理程序,如下所示:

class mockObserver: NSObject,XCTestObservation {
    func TESTCase(_ TESTCase: XCTESTCase,didFailWithDescription description: String,inFile filePath: String?,atLine linenumber: Uint) {
        XCUIDevice.shared().orientation = .unkNown
    }
}

XCTestObservationCenter.shared().addTestObserver(mockObserver())

您可以将此代码放在setUp()方法或特定的test …方法中.

测试输出有点奇怪,因为它会显示“将设备方向设置为未知”作为错误内部的实际谓词错误,但您将获得截图:

Xcode UI测试:在谓词失败时自动拍摄快照?

大佬总结

以上是大佬教程为你收集整理的Xcode UI测试:在谓词失败时自动拍摄快照?全部内容,希望文章能够帮你解决Xcode UI测试:在谓词失败时自动拍摄快照?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。