|  | # Automated testing for Chrome for iOS | 
|  |  | 
|  | See the [instructions] for how to check out and build Chromium for iOS. | 
|  |  | 
|  | Automated testing is a crucial part of ensuring the quality of Chromium. | 
|  |  | 
|  | ## Unit testing | 
|  |  | 
|  | Unit testing is done via gtests. To run a unit test, simply run the test | 
|  | target (ending in _unittest). | 
|  |  | 
|  | ## Integration testing | 
|  |  | 
|  | [EarlGrey] is the integration testing framework used by Chromium for iOS. | 
|  |  | 
|  | ### Running EarlGrey tests | 
|  |  | 
|  | EarlGrey tests are based on Apple's [XCUITest]. | 
|  |  | 
|  | #### Running tests from Xcode | 
|  |  | 
|  | An entire suite of tests can be run from Xcode. | 
|  | 1. Select the *egtest target you wish to run. | 
|  | 2. ⌘+U to run all the tests. Note: ⌘+R, which is normally used to run an | 
|  | application, will simply launch the app under test, but will not run the | 
|  | XCTests. | 
|  |  | 
|  | A subset of tests can be run by selecting the test or test case from the | 
|  | XCTest navigator on the left side of the screen. | 
|  |  | 
|  | #### Running from the command-line | 
|  |  | 
|  | When running from the command-line, it is required to pass in the *.xctest | 
|  | target, in addition to the test application. | 
|  | Example: | 
|  | ``` | 
|  | ./out/Debug-iphonesimulator/iossim -d "iPad Retina" -s 8.1 \ | 
|  | out/Debug-iphonesimulator/ios_chrome_integration_egtests.app \ | 
|  | out/Debug-iphonesimulator/ios_chrome_integration_egtests_module.xctest | 
|  | ``` | 
|  |  | 
|  |  | 
|  | [EarlGrey]: https://github.com/google/EarlGrey | 
|  | [instructions]: ./build_instructions.md | 
|  | [XCUITest]: https://developer.apple.com/documentation/xctest |