These are the unit tests for iOS engine. They can be executed locally and are also run in LUCI builds.
To build and run the iOS tests, use the run_tests
script from the src
directory.
flutter/testing/run_tests.py --type=objc
And if you're on Apple Silicon:
./flutter/testing/run_tests.py \ --type=objc \ --ios-variant ios_debug_sim_unopt_arm64
The .xcresult
is automatically removed after testing ends. To change this:
export FLUTTER_TEST_OUTPUTS_DIR=~/Desktop
To learn more:
flutter/testing/run_tests.py --help
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 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
again.
When you add a new unit test file, also add a reference to that file in 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.