在与XCTestCase分开的文件中

时间:2018-08-23 21:33:15

标签: xcode xctest xcuitest

我目前正在使用XCUITest编写自动化的iOS测试。我有一个实际调用测试的主.swift文件,然后有一个单独的.swift文件,该文件具有一些我开发的扩展XCUIElement类的功能。

是否可以在这些扩展功能中附加屏幕截图,以将其包含在测试结果中?我似乎无法弄清楚。谢谢!

1 个答案:

答案 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)
        }
    }
}