mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 20:39:24 +00:00
Screenshot tests (#130)
* #9 Add snapshot testing library * #9 Create script to boot test simulators * #9 Create the UI test plan * #9 Create shared schemes for test targets * #9 Disable split view for UI tests * #9 Fix fastlane dependencies * #9 Add snapshot testing to the application * #9 assert screenshots * #9 fix swipe gestures on iPad * #9 Fix accessing items in session verification screen * #9 Workaround for flaky unit test * #9 Specify scheme for alpha build * #9 Add reference screenshots * Update python script path and check assets for png check * Update script path * Use static timezone for simulator time * Fix build after SwiftFormat * Add changelog * Upload failed screenshots artifact * Always upload artifacts * Update boot simulator script * Update simulator overridden time * Install pytz before tests * Get time from Ruby script * Disable SwiftUI animation when running UI tests * Update screenshots after animation setting * Include reference images in the artifact * Update matching precision * Update image matching precision & revert artifact content * Include Xcode result in the artifact * Update test output directory * Disable gradient on splash screen for tests * Tap next button explicitly * Wait a bit before checking alert * Wait 1 second * Run SwiftFormat on project * Ignore temporary screenshots * Fix most of the PR remarks * Fix conflicts * Bump Python version to 3 * Update reference screenshots for authentication screens * Update SwiftFormat * Fix flakey session verification test. * Update scheme. Co-authored-by: Doug <douglase@element.io>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"configurations" : [
|
||||
{
|
||||
"id" : "183696C6-4CBB-4BCE-8F4C-D2B848395699",
|
||||
"name" : "English",
|
||||
"options" : {
|
||||
"language" : "en",
|
||||
"region" : "GB"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id" : "9657189C-CDB9-4D85-86EB-8A611144C11E",
|
||||
"name" : "French",
|
||||
"options" : {
|
||||
"language" : "fr",
|
||||
"region" : "FR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id" : "04E7AF54-391D-42D4-8193-7AD50C685639",
|
||||
"name" : "German",
|
||||
"options" : {
|
||||
"language" : "de",
|
||||
"region" : "DE"
|
||||
}
|
||||
}
|
||||
],
|
||||
"defaultOptions" : {
|
||||
"addressSanitizer" : {
|
||||
"enabled" : true
|
||||
},
|
||||
"environmentVariableEntries" : [
|
||||
{
|
||||
"key" : "SNAPSHOT_ARTIFACTS",
|
||||
"value" : "\/tmp\/__FailedScreenshots__"
|
||||
}
|
||||
],
|
||||
"locationScenario" : {
|
||||
"identifier" : "London, England",
|
||||
"referenceType" : "built-in"
|
||||
},
|
||||
"targetForVariableExpansion" : {
|
||||
"containerPath" : "container:ElementX.xcodeproj",
|
||||
"identifier" : "C0FAEB81CFD9776CD78CE489",
|
||||
"name" : "ElementX"
|
||||
},
|
||||
"uiTestingScreenshotsLifetime" : "keepNever",
|
||||
"undefinedBehaviorSanitizerEnabled" : true,
|
||||
"userAttachmentLifetime" : "keepNever"
|
||||
},
|
||||
"testTargets" : [
|
||||
{
|
||||
"target" : {
|
||||
"containerPath" : "container:ElementX.xcodeproj",
|
||||
"identifier" : "0E28CD62691FDBC63147D5E3",
|
||||
"name" : "UITests"
|
||||
}
|
||||
}
|
||||
],
|
||||
"version" : 1
|
||||
}
|
||||
@@ -1,5 +1,25 @@
|
||||
name: UITests
|
||||
|
||||
schemes:
|
||||
UITests:
|
||||
analyze:
|
||||
config: Debug
|
||||
archive:
|
||||
config: Release
|
||||
build:
|
||||
targets:
|
||||
UITests: all
|
||||
profile:
|
||||
config: Release
|
||||
run:
|
||||
config: Debug
|
||||
disableMainThreadChecker: false
|
||||
test:
|
||||
config: Debug
|
||||
testPlans:
|
||||
- path: UITests.xctestplan
|
||||
defaultPlan: true
|
||||
|
||||
targets:
|
||||
UITests:
|
||||
type: bundle.ui-testing
|
||||
@@ -27,6 +47,8 @@ targets:
|
||||
linkType: static
|
||||
- package: Sentry
|
||||
linkType: static
|
||||
- package: SnapshotTesting
|
||||
linkType: static
|
||||
|
||||
info:
|
||||
path: ../SupportingFiles/Info.plist
|
||||
@@ -38,8 +60,18 @@ targets:
|
||||
debug:
|
||||
release:
|
||||
|
||||
preBuildScripts:
|
||||
- name: Override Simulator Status Bars
|
||||
runOnlyWhenInstalling: false
|
||||
shell: /bin/sh
|
||||
script: |
|
||||
python3 $PROJECT_DIR/Tools/Scripts/bootTestSimulator.py --name 'iPhone 13 Pro Max' --version 'iOS.15.5'
|
||||
python3 $PROJECT_DIR/Tools/Scripts/bootTestSimulator.py --name 'iPad (9th generation)' --version 'iOS.15.5'
|
||||
|
||||
sources:
|
||||
- path: ../Sources
|
||||
excludes:
|
||||
- "**/__Snapshots__/**"
|
||||
- path: ../SupportingFiles
|
||||
- path: ../../Tools/Scripts/Templates/SimpleScreenExample/Tests/UI
|
||||
- path: ../../ElementX/Sources/BuildSettings.swift
|
||||
|
||||
Reference in New Issue
Block a user