{"id":2106,"url":"https://github.com/google/EarlGrey","last_synced_at":"2025-08-02T23:32:02.771Z","repository":{"id":37611907,"uuid":"51094210","full_name":"google/EarlGrey","owner":"google","description":":tea: iOS UI Automation Test Framework","archived":false,"fork":false,"pushed_at":"2024-10-29T19:08:56.000Z","size":48522,"stargazers_count":5617,"open_issues_count":238,"forks_count":742,"subscribers_count":233,"default_branch":"master","last_synced_at":"2024-10-30T01:59:36.327Z","etag":null,"topics":["automation","earlgrey","ios","ios-automation","ios-development","ios-device","ios-test","test-framework","testing-tools","ui-automated-tests"],"latest_commit_sha":null,"homepage":"http://google.github.io/EarlGrey/","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/google.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap.md","authors":null,"dei":null}},"created_at":"2016-02-04T17:55:29.000Z","updated_at":"2024-10-29T12:25:12.000Z","dependencies_parsed_at":"2022-07-13T19:10:34.153Z","dependency_job_id":"14573818-4a3f-4580-b092-b39e4f9d4df2","html_url":"https://github.com/google/EarlGrey","commit_stats":{"total_commits":698,"total_committers":65,"mean_commits":"10.738461538461538","dds":0.7077363896848137,"last_synced_commit":"aea2d32233dc2cd2eff7906426944c8f287c0855"},"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2FEarlGrey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2FEarlGrey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2FEarlGrey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/google%2FEarlGrey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/google","download_url":"https://codeload.github.com/google/EarlGrey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223266825,"owners_count":17116493,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","earlgrey","ios","ios-automation","ios-development","ios-device","ios-test","test-framework","testing-tools","ui-automated-tests"],"created_at":"2024-01-05T20:16:03.701Z","updated_at":"2024-12-06T17:30:43.883Z","avatar_url":"https://github.com/google.png","language":"Objective-C","readme":"Deprecation: EarlGrey 1.0 is deprecated in favor of EarlGrey 2.0 which integrates it with XCUITest. Please look at the [earlgrey2](https://github.com/google/EarlGrey/tree/earlgrey2) branch. EarlGrey 1.0 is not being maintained internally with iOS 13.\n\n# EarlGrey\n[![Apache License](https://img.shields.io/badge/license-Apache%202-lightgrey.svg?style=flat)](https://github.com/google/EarlGrey/blob/master/LICENSE)\n[![CC-BY 4.0 License](https://img.shields.io/badge/license-CC%20BY%204.0-lightgrey.svg)](https://github.com/google/EarlGrey/blob/master/LICENSE)\n[![Build Status](https://travis-ci.org/google/EarlGrey.svg?branch=master)](https://travis-ci.org/google/EarlGrey)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n[![CocoaPods](https://img.shields.io/cocoapods/v/EarlGrey.svg?maxAge=2592000)](https://cocoapods.org/pods/EarlGrey)\n[![Gem Version](https://badge.fury.io/rb/earlgrey.svg)](https://rubygems.org/gems/earlgrey)\n\n**For EarlGrey 2, please go to [earlgrey2 branch](https://github.com/google/EarlGrey/tree/earlgrey2).**\n\nEarlGrey is a native iOS UI automation test framework that enables you to write\nclear, concise tests.\n\nWith the EarlGrey framework, you have access to enhanced synchronization\nfeatures. EarlGrey automatically synchronizes with the UI, network requests,\nand various queues; but still allows you to manually implement customized\ntimings, if needed.\n\nEarlGrey’s synchronization features help to ensure that the UI is in a steady\nstate before actions are performed. This greatly increases test stability and\nmakes tests highly repeatable.\n\nEarlGrey works in conjunction with the XCTest framework and integrates with\nXcode’s Test Navigator so you can run tests directly from Xcode or the command\nline (using xcodebuild).\n\n## Getting Started\n\nThe EarlGrey documentation for users is located in the\n[EarlGrey/docs](https://github.com/google/EarlGrey/tree/master/docs) folder.\nTo get started, review the EarlGrey features, check for backward compatibility,\nand then install/run EarlGrey with your test target. After everything is\nconfigured, take a look at the EarlGrey API and start writing your own tests.\n\n  * [Features](https://github.com/google/EarlGrey/tree/master/docs/features.md)\n  * [Backward Compatibility](https://github.com/google/EarlGrey/tree/master/docs/backward-compatibility.md)\n  * [Install and Run](https://github.com/google/EarlGrey/tree/master/docs/install-and-run.md)\n  * [API](https://github.com/google/EarlGrey/tree/master/docs/api.md)\n  * [Cheat Sheet](https://github.com/google/EarlGrey/tree/master/docs/cheatsheet/cheatsheet.png)\n\n## Getting Help\n\nIf you need help, several resources are available. First check the [FAQ](https://github.com/google/EarlGrey/tree/master/docs/faq.md).\nIf you have more questions after reading the FAQ, see [Known Issues](https://github.com/google/EarlGrey/tree/master/docs/known-issues.md).\nYou can bring more specific issues to our attention by asking them on\n[stackoverflow.com](http://stackoverflow.com/) using the [#earlgrey tag](http://stackoverflow.com/questions/tagged/earlgrey).\nYou can also start new discussions with us on our [Google group](https://groups.google.com/forum/#!forum/earlgrey-discuss)\nor request to join our [slack channel](https://googleoss.slack.com/messages/earlgrey).\n\n  * [FAQ - Frequently Asked Questions](https://github.com/google/EarlGrey/tree/master/docs/faq.md)\n  * [IFAQ - Infrequently Asked Questions](https://github.com/google/EarlGrey/tree/master/docs/ifaq.md)\n  * [Known Issues](https://github.com/google/EarlGrey/tree/master/docs/known-issues.md)\n  * [Stack Overflow](http://stackoverflow.com/questions/tagged/earlgrey)\n  * [Slack](https://googleoss.slack.com/messages/earlgrey)\n  * [Google Group](https://groups.google.com/forum/#!forum/earlgrey-discuss)\n\n## Analytics\n\nTo prioritize and improve EarlGrey, the framework collects usage data and\nuploads it to Google Analytics. More specifically, the framework collects the\n**MD5 hash** of *Bundle ID*,  *Test Class Names* and *Test Method Names*. This\ninformation allows us to measure the volume of usage. For more detailed\ninformation about our analytics collection, please peruse the\n[GREYAnalytics.m](https://github.com/google/EarlGrey/tree/master/EarlGrey/Common/GREYAnalytics.m)\nfile which contains the implementation details. If they wish, users can choose\nto opt out by disabling the Analytics config setting in their test’s\n`- (void)setUp` method:\n\nIn Objective-C:\n\n```objc\n// Disable analytics.\n[[GREYConfiguration sharedInstance] setValue:@(NO) forConfigKey:kGREYConfigKeyAnalyticsEnabled];\n```\n\nIn Swift:\n\n```swift\n// Disable analytics.\nGREYConfiguration.sharedInstance().setValue(false, forConfigKey: kGREYConfigKeyAnalyticsEnabled)\n```\n\n## For Contributors\n\nPlease make sure you’ve followed the guidelines in\n[CONTRIBUTING.md](https://github.com/google/EarlGrey/tree/master/CONTRIBUTING.md) before making any contributions.\n\n### Setup an EarlGrey Project\n\n  1. Clone the EarlGrey repository from GitHub:\n\n    git clone https://github.com/google/EarlGrey.git\n\n  2. After you have cloned the EarlGrey repository, download all the dependencies\nusing [**setup-earlgrey.sh**](https://github.com/google/EarlGrey/tree/master/Scripts/setup-earlgrey.sh).\n  3. After the script completes successfully, open `EarlGrey.xcodeproj` and ensure that all\nthe targets build.\n  4. You can now use `EarlGrey.xcodeproj` to make changes to the framework.\n\n### Add and Run Tests\n\n#### Unit Tests\n\nTo add unit tests for EarlGrey, use `UnitTests.xcodeproj` located at\n`Tests/UnitTests`. To run all unit tests, select the **UnitTests** Scheme and press Cmd+U.\n\n#### Functional Tests\n\nTo add functional tests for EarlGrey, use the `FunctionalTests.xcodeproj` located\nat `Tests/FunctionalTests`. To run all functional tests, select the **FunctionalTests** Scheme and press Cmd+U.\n","funding_links":[],"categories":["Testing","Objective-C","HarmonyOS","Mobile App Testing"],"sub_categories":["UI Testing","Windows Manager","IOS testing","Other free courses"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2FEarlGrey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoogle%2FEarlGrey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoogle%2FEarlGrey/lists"}