| # iOS Unit Tests |
| |
| These are the unit tests for iOS engine. They can be executed locally and are |
| also run in LUCI builds. |
| |
| ## Running Tests |
| |
| To build and run the iOS tests, run the following script from the src directory: |
| |
| ```sh |
| flutter/testing/run_tests.py --type=objc |
| ``` |
| |
| After the `ios_test_flutter` target is built you can also run the tests inside |
| of Xcode with `testing/ios/IosUnitTests/IosUnitTests.xcodeproj`. |
| |
| When you load the test project [IosUnitTests.xcodeproj](IosUnitTests.xcodeproj) |
| into Xcode after running `run_tests.py`, only a few basic tests will appear |
| initially. You have to run the test suite once in Xcode for the rest to appear. |
| Select "iPhone 11" as the device, and press `command-u` to start all the tests |
| running. Once the tests are done running, the tests that ran will appear in the |
| sidebar, and you can pick the specific one you want to debug/run. |
| |
| If you modify the test or under-test files, you'll have to run |
| [`run_tests.py`](../../run_tests.py) again. |
| |
| ## Adding Tests |
| |
| When you add a new unit test file, also add a reference to that file in |
| [`shell/platform/darwin/ios/BUILD.gn`](../../../shell/platform/darwin/ios/BUILD.gn), |
| under the `sources` list of the `ios_test_flutter` target. Once it's there, it |
| will execute with the other tests. |