我目前正在使用XCUITest编写自动化的iOS测试。我有一个实际调用测试的主.swift文件,然后有一个单独的.swift文件,该文件具有一些我开发的扩展XCUIElement类的功能。
是否可以在这些扩展功能中附加屏幕截图,以将其包含在测试结果中?我似乎无法弄清楚。谢谢!
答案 0 :(得分:1)
Here is a post I made解释了如何获取屏幕截图并将其附加到测试中的活动中。附件和活动API可以在测试中的任何地方使用,而不仅限于测试类中。
要仅捕获XCUIElement
扩展名中的当前元素的屏幕截图,可以仅调用screenshot()
而不是element.screenshot()
来调用其他地方。要获取整个屏幕的屏幕截图,请初始化一个新的XCUIApplication
并在其上调用screenshot()
。
extension XCUIElement {
func tapTwice() {
takeScreenshot()
tap()
tap()
}
func takeScreenshot() {
XCTContext.runActivity(named: "Take screenshot") { activity in
let screenshot = XCTAttachment(screenshot: screenshot())
screenshot.lifetime = .keepAlways
activity.add(screenshot)
}
}
}