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

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

概述每当测试失败时, 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测试:在谓词失败时自动拍摄快照?所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1033837.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存