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:
ismailgulek
2022-08-11 15:02:47 +03:00
committed by GitHub
parent 207cbdebfd
commit 2cb6dc1cd9
127 changed files with 944 additions and 83 deletions
+32
View File
@@ -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