ListlessWatchScreenshots.swift (1309B)
1 import XCTest 2 3 final class ListlessWatchScreenshots: XCTestCase { 4 var app: XCUIApplication! 5 6 static let screenshotDir = "/tmp/listless-screenshots" 7 8 override class func setUp() { 9 super.setUp() 10 try? FileManager.default.createDirectory( 11 atPath: screenshotDir, 12 withIntermediateDirectories: true 13 ) 14 } 15 16 override func tearDownWithError() throws { 17 app.terminate() 18 } 19 20 private func launchApp(_ additionalArgs: [String] = []) { 21 app = XCUIApplication() 22 app.launchArguments = ["UI_TESTING"] + additionalArgs 23 app.launch() 24 } 25 26 func saveScreenshot(name: String) { 27 let screenshot = XCUIScreen.main.screenshot() 28 let attachment = XCTAttachment(screenshot: screenshot) 29 attachment.name = name 30 attachment.lifetime = .keepAlways 31 add(attachment) 32 33 let data = screenshot.pngRepresentation 34 let path = "\(Self.screenshotDir)/\(name).png" 35 try? data.write(to: URL(fileURLWithPath: path)) 36 } 37 38 func testScreenshot01_Items() throws { 39 launchApp(["SCREENSHOT_SEED"]) 40 41 let list = app.collectionViews.firstMatch 42 XCTAssertTrue(list.waitForExistence(timeout: 5)) 43 44 usleep(500_000) 45 46 saveScreenshot(name: "01-items") 47 } 48 }