listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

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 }