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
+16 -1
View File
@@ -30,6 +30,7 @@ lane :alpha do
update_app_icon(caption_text: "PR #{version}")
build_ios_app(
scheme: "ElementX",
clean: true,
export_method: "ad-hoc",
output_directory: "build",
@@ -72,7 +73,21 @@ lane :adhoc do
end
lane :tests do
run_tests()
run_tests(
project: "ElementX.xcodeproj",
scheme: "UnitTests"
)
run_tests(
project: "ElementX.xcodeproj",
scheme: "UITests",
devices: ["iPhone 13 Pro Max (15.5)", "iPad (9th generation) (15.5)"],
ensure_devices_found: true,
prelaunch_simulator: true,
output_directory: "fastlane/test_output/",
result_bundle: true
)
slather(
cobertura_xml: true,