Skill: UI-Test und Screenshot erstellen
Gefuehrter Workflow zum Erstellen neuer XCUITests und Fastlane Screenshots fuer iOS.
Kernprinzip
- Gefuehrt: Schritt fuer Schritt durch den Prozess
- Best Practices: Bekannte Patterns fuer XCUITest und SwiftUI
- Validierung: Test am Ende ausfuehren und pruefen
Wann dieser Skill aktiviert wird
- "Erstelle UI Test fuer die Settings View"
- "Neuer Screenshot fuer den Player"
- "Add screenshot test for library"
- "UI Test hinzufuegen"
/create-ui-test
Workflow
Schritt 1: Art des Tests erfragen
Frage den User:
- UI-Flow-Test: Testet Interaktionen (z.B. Timer starten, pausieren)
- Screenshot-Test: Fuer App Store / Website Screenshots
- Beides: UI-Test mit Screenshot am Ende
Schritt 2: Ziel-View identifizieren
- Welche View soll getestet werden?
- In welchem Tab ist sie? (Timer / Library)
- Accessibility Identifier pruefen:
# Suche nach existierenden Identifiers grep -r "accessibilityIdentifier" ios/StillMoment/Presentation/Views/
Schritt 3: Navigation planen
Lese die Pattern-Dateien fuer korrekte Navigation:
patterns/navigation.md- Tab-Wechsel, Sheetspatterns/element-finding.md- Elemente finden
Wichtige Regeln:
- Tab-Buttons: Lokalisierten Text verwenden, NICHT accessibilityIdentifier
- SwiftUI Lists:
.descendants(matching: .any)statt.cells - Immer
waitForExistence(timeout:)verwenden
Schritt 4: Test-Methode erstellen
Zieldatei bestimmen:
- Screenshots:
ios/StillMomentUITests/ScreenshotTests.swift - Flow-Tests:
ios/StillMomentUITests/*FlowUITests.swift
- Screenshots:
Template aus
templates/test-method.mdverwendenNaming Convention:
- Screenshots:
testScreenshot0X_Name - Flow-Tests:
testFeature_Scenario
- Screenshots:
Schritt 5: Screenshot-Integration (falls gewuenscht)
snapshot("0X_Name")Aufruf hinzufuegen- Mapping in
ios/scripts/process-screenshots.sherweitern:["0X_Name"]="output-name" - Beide Sprachen werden automatisch generiert (DE + EN)
Lese patterns/screenshots.md fuer Details.
Schritt 6: Validierung
Test einzeln ausfuehren:
cd ios xcodebuild test \ -project StillMoment.xcodeproj \ -scheme StillMoment-Screenshots \ -destination 'platform=iOS Simulator,name=iPhone 17,OS=latest' \ -only-testing:StillMomentUITests/ScreenshotTests/testScreenshot0X_Name \ CODE_SIGNING_ALLOWED=NOScreenshot pruefen (falls Screenshot-Test):
HEADLESS=false make screenshots # Mit sichtbarem SimulatorBei Fehlern: Pattern-Dateien konsultieren
Referenzen
patterns/navigation.md- Tab-Navigation, Sheet-Handlingpatterns/element-finding.md- XCUITest Element-Suchepatterns/screenshots.md- Fastlane Snapshot Integrationtemplates/test-method.md- Code-Templateios/StillMomentUITests/ScreenshotTests.swift- Bestehende Testsdev-docs/guides/screenshots-ios.md- Screenshot-Dokumentation
Converted and distributed by TomeVault — claim your Tome and manage your conversions.