| # Scenario App: iOS Tests |
| |
| As mentioned in the [top-level README](../README.md), this directory contains |
| the iOS-specific native code and tests for the [scenario app](../lib). To run |
| the tests, you will need to build the engine with the appropriate configuration. |
| |
| For example, after building `ios_debug_sim_unopt` (to run on Intel Macs) or `ios_debug_sim_unopt_arm64` (to run on ARM Macs), |
| run: |
| |
| ```sh |
| # From the root of the engine repository |
| $ ./testing/run_ios_tests.sh ios_debug_sim_unopt |
| ``` |
| or |
| ```sh |
| # From the root of the engine repository |
| $ ./testing/run_ios_tests.sh ios_debug_sim_unopt_arm64 |
| ``` |
| |
| To run or debug in Xcode, open the xcodeproj file located in |
| `<engine_out_dir>/ios_debug_sim_unopt/scenario_app/Scenarios/Scenarios.xcodeproj`. |
| |
| ## CI Configuration |
| |
| See [`ci/builders/mac_unopt.json`](../../../../ci/builders/mac_unopt.json), and |
| grep for `run_ios_tests.sh`. |
| |
| ## iOS Platform View Tests |
| |
| For PlatformView tests on iOS, edit the dictionaries in |
| [AppDelegate.m](Scenarios/Scenarios/AppDelegate.m) and |
| [GoldenTestManager.m](Scenarios/ScenariosUITests/GoldenTestManager.m) so that |
| the correct golden image can be found. Also, add a |
| [GoldenPlatformViewTests](Scenarios/ScenariosUITests/GoldenPlatformViewTests.h) |
| in [PlatformViewUITests.m](Scenarios/ScenariosUITests/PlatformViewUITests.m). |
| |
| If `PlatformViewRotation` is failing, make sure |
| `Simulator app Device > Rotate Device Automatically` is selected, or run: |
| |
| ```bash |
| defaults write com.apple.iphonesimulator RotateWindowWhenSignaledByGuest -int 1 |
| ``` |
| |
| ## Generating Golden Images on iOS |
| |
| Screenshots are saved as |
| [XCTAttachment](https://developer.apple.com/documentation/xctest/activities_and_attachments/adding_attachments_to_tests_and_activities?language=objc)'s. |
| |
| A path in the form of |
| `/Users/$USER/Library/Developer/Xcode/DerivedData/Scenarios-$HASH` will be |
| printed to the console. |
| |
| Inside that directory there is a directory |
| `./Build/Products/Debug-iphonesimulator/ScenariosUITests-Runner.app/PlugIns/ScenariosUITests.xctest/` |
| which is where all the images that were compared against golden reside. |