{"id":13504581,"url":"https://github.com/MADE-Apps/legerity","last_synced_at":"2025-03-29T22:30:56.371Z","repository":{"id":37780712,"uuid":"260917387","full_name":"MADE-Apps/legerity","owner":"MADE-Apps","description":"A framework for speeding up the development of automated UI tests for Windows, Android, iOS, and Web with Appium/Selenium on .NET","archived":false,"fork":false,"pushed_at":"2024-03-15T07:35:13.000Z","size":37210,"stargazers_count":64,"open_issues_count":17,"forks_count":13,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-03-16T07:51:46.213Z","etag":null,"topics":["android","appium","automated-testing","csharp","dotnet","framework","ios","pageobject","pageobject-pattern","selenium","selenium-webdriver","test-automation","test-framework","testing","ui-testing","uwp","webdriver","winappdriver","xamarin"],"latest_commit_sha":null,"homepage":"https://made-apps.github.io/legerity/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MADE-Apps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["jamesmcroft"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":["buymeacoffee.com/jamesmcroft"]}},"created_at":"2020-05-03T12:55:39.000Z","updated_at":"2024-05-05T11:39:47.407Z","dependencies_parsed_at":"2023-11-14T10:28:59.741Z","dependency_job_id":"3725090b-a32e-4cde-b887-aab2d9ddf5aa","html_url":"https://github.com/MADE-Apps/legerity","commit_stats":{"total_commits":483,"total_committers":5,"mean_commits":96.6,"dds":"0.17184265010351962","last_synced_commit":"f575a0d5b96abc1ff99738cfe490c487d5429fda"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MADE-Apps%2Flegerity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MADE-Apps%2Flegerity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MADE-Apps%2Flegerity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MADE-Apps%2Flegerity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MADE-Apps","download_url":"https://codeload.github.com/MADE-Apps/legerity/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246254077,"owners_count":20747946,"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":["android","appium","automated-testing","csharp","dotnet","framework","ios","pageobject","pageobject-pattern","selenium","selenium-webdriver","test-automation","test-framework","testing","ui-testing","uwp","webdriver","winappdriver","xamarin"],"created_at":"2024-08-01T00:00:46.507Z","updated_at":"2025-03-29T22:30:51.769Z","avatar_url":"https://github.com/MADE-Apps.png","language":"C#","readme":"\u003cimg src=\"assets/ProjectBanner.png\" alt=\"Legerity project banner\" /\u003e\n\n# Legerity\n\n\u003cdiv style=\"margin-bottom:16px;\"\u003e\n    \u003cdiv\u003e\n        \u003cdiv\u003e\u003cspan\u003e/\u003cspan\u003eləˈdʒɛr ɪ ti\u003c/span\u003e/ (l\u003ci\u003euh\u003c/i\u003e-\u003cb\u003ejer\u003c/b\u003e-i-tee)\u003c/span\u003e\u003c/div\u003e\n    \u003c/div\u003e\n    \u003cdiv\u003e\n        \u003cdiv\u003e\n            \u003cdiv\u003e\n                \u003cdiv\u003e\u003ci\u003e\u003cspan\u003enoun\u003c/span\u003e\u003c/i\u003e\u003c/div\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n        \u003col\u003e\n            \u003cli\u003e\n                \u003cdiv style=\"margin-left:20px\"\u003e\n                    \u003cdiv class=\"LTKOO sY7ric\"\u003e\n                        \u003cdiv style=\"display:inline\" data-dobid=\"dfn\"\u003e\u003cspan\u003ephysical or mental quickness; nimbleness;\n                                agility.\u003c/span\u003e\u003c/div\u003e\n                    \u003c/div\u003e\n                \u003c/div\u003e\n            \u003c/li\u003e\n        \u003c/ol\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\n[![GitHub release](https://img.shields.io/github/release/MADE-Apps/legerity.svg)](https://github.com/MADE-Apps/legerity/releases)\n[![Nuget](https://img.shields.io/nuget/v/Legerity.svg)](https://www.nuget.org/packages/Legerity/)\n[![Nuget Preview](https://img.shields.io/nuget/vpre/Legerity.svg?label=nuget%20%28preview%29)](https://www.nuget.org/packages/Legerity/)\n[![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Core.svg)](https://www.nuget.org/packages/Legerity)\n[![Build status](https://github.com/MADE-Apps/legerity/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/MADE-Apps/legerity/actions/workflows/ci.yml)\n[![Legerity docs](https://img.shields.io/badge/docs-Legerity-blue.svg)](https://made-apps.github.io/legerity/)\n[![Legerity discussions](https://img.shields.io/badge/discuss-Legerity-blue.svg)](https://github.com/MADE-Apps/legerity/discussions)\n\nLegerity is an automated UI testing framework for building maintainable tests quickly for Windows, Android, iOS, and Web applications with C#/.NET.\n\nIt simplifies the development by providing easy-to-use element wrappers for native app controls that allow developers to quickly get up and running with UI tests in no time.\n\nLegerity also provides a best practice page object pattern for building UI tests with a maintainable structure. Together with native app control wrappers, Legerity provides the best experience for building maintainable UI automation with speed.\n\n**[Discover what's new in Legerity](https://github.com/MADE-Apps/legerity/releases)**\n\n## Features ⭐\n\n- **AppManager** - A wrapper around the [Selenium WebDriver](https://github.com/SeleniumHQ/selenium) and [Appium WebDrivers](https://github.com/appium/appium-dotnet-driver) to simplify starting your UI tests. Supports running a single set of UI tests across multiple platforms, or browsers.\n- **Page Object Pattern** - Provides a `BasePage` that can be used to create page objects associated with pages in your application that are easy to implement and maintain.\n- **[Page Object Generator](tools/Legerity.PageObjectGenerator)** - A dotnet CLI tool that will automatically create page objects by understanding your application page files!\n- **Element Wrappers** - Contains a collection of out-of-the-box wrappers for native UI elements that are easy to use with interactions.\n- **Testing Frameworks** - Legerity is agnostic of .NET testing frameworks (e.g. NUnit, xUnit, MSTest, etc.) so you can work with what you know.\n- **CI** - Legerity is also agnostic of host CI runner platforms (e.g. GitHub Actions, Azure Pipelines, etc.) and can be run anywhere.\n- **Extendable** - [Legerity.Windows](https://www.nuget.org/packages/Legerity.Windows), [Legerity.Android](https://www.nuget.org/packages/Legerity.Android), [Legerity.IOS](https://www.nuget.org/packages/Legerity.IOS), [Legerity.Web](https://www.nuget.org/packages/Legerity.Web), [Legerity.MADE](https://www.nuget.org/packages/Legerity.MADE), [Legerity.Telerik.Uwp](https://www.nuget.org/packages/Legerity.Telerik.Uwp), [Legerity.WCT](https://www.nuget.org/packages/Legerity.WCT), and [Legerity.WinUI](https://www.nuget.org/packages/Legerity.WinUI) packages include out-of-the-box platform element wrappers for you to use. We also provide the [Legerity.Core](https://www.nuget.org/packages/Legerity.Core) for you to extend your UI components too.\n\n## Documentation 📃\n\nIf you want to deep dive into the Legerity framework with details on how to use the features, you can browse the [documentation](https://made-apps.github.io/legerity/) for help getting up and running!\n\nOur documentation includes usages examples, as well as API documentation for your technical reference.\n\n## Installation 💾\n\nLegerity is publicly available via NuGet. Each available package is detailed below.\n\nFor non-core platform controls, for example, WinUI or the Windows Community Toolkit, we're providing additional extension packages for you to take advantage of within your test projects.\n\n| Package | Downloads |\n| ------ | ------ |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.svg?label=Legerity)](https://www.nuget.org/packages/Legerity/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.svg)](https://www.nuget.org/packages/Legerity) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Core.svg?label=Legerity.Core)](https://www.nuget.org/packages/Legerity.Core/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Core.svg)](https://www.nuget.org/packages/Legerity.Core) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Windows.svg?label=Legerity.Windows)](https://www.nuget.org/packages/Legerity.Windows/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Windows.svg)](https://www.nuget.org/packages/Legerity.Windows) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Android.svg?label=Legerity.Android)](https://www.nuget.org/packages/Legerity.Android/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Android.svg)](https://www.nuget.org/packages/Legerity.Android) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.IOS.svg?label=Legerity.IOS)](https://www.nuget.org/packages/Legerity.IOS/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.IOS.svg)](https://www.nuget.org/packages/Legerity.IOS) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Web.svg?label=Legerity.Web)](https://www.nuget.org/packages/Legerity.Web/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Web.svg)](https://www.nuget.org/packages/Legerity.Web) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Web.Authentication.svg?label=Legerity.Web.Authentication)](https://www.nuget.org/packages/Legerity.Web.Authentication/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Web.Authentication.svg)](https://www.nuget.org/packages/Legerity.Web.Authentication) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.MADE.svg?label=Legerity.MADE)](https://www.nuget.org/packages/Legerity.MADE/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.MADE.svg)](https://www.nuget.org/packages/Legerity.MADE) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Telerik.Uwp.svg?label=Legerity.Telerik.Uwp)](https://www.nuget.org/packages/Legerity.Telerik.Uwp/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Telerik.Uwp.svg)](https://www.nuget.org/packages/Legerity.Telerik.Uwp) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.WCT.svg?label=Legerity.WCT)](https://www.nuget.org/packages/Legerity.WCT/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.WCT.svg)](https://www.nuget.org/packages/Legerity.WCT) |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.WinUI.svg?label=Legerity.WinUI)](https://www.nuget.org/packages/Legerity.WinUI/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.WinUI.svg)](https://www.nuget.org/packages/Legerity.WinUI) |\n\n## Support Legerity 💗\n\nAs many developers know, projects like Legerity are built and maintained in spare time. If you find this project useful, please **Star** the repo and if possible, sponsor the project development on GitHub.\n\n## Contributing 🚀\n\nLooking to help build Legerity? Take a look through our [contribution guidelines](CONTRIBUTING.md). We actively encourage you to jump in and help with any issues!\n\n## Building Legerity 🛠\n\nLegerity is built using .NET Standard, taking advantage of the new SDK-style projects.\n\nYou can build the solution using Visual Studio with the following workloads installed:\n\n- .NET desktop development\n- .NET Core cross-platform development\n\n## Got components? 💭\n\nDo you have a collection of custom components that you'd like to see added to the Legerity framework? Feel free to drop a feature request into our [work tracker](https://github.com/MADE-Apps/legerity/issues)!\n\nEven better, why not help build out your custom control wrapper elements within the framework and help out the community!\n\n### Additional component extensions\n\n| Package | Downloads | Description |\n| ------ | ------ | ------ |\n| [![Nuget](https://img.shields.io/nuget/v/Legerity.Uno.svg?label=Uno+Platform)](https://www.nuget.org/packages/Legerity.Uno/) | [![NuGet Downloads](https://img.shields.io/nuget/dt/Legerity.Uno.svg)](https://www.nuget.org/packages/Legerity.Uno/) | Extension framework to Legerity to support cross-platform UI testing for Uno Platform |\n\n### UI Automation tooling 🧰\n\nWhen contributing to new element wrappers, we recommended using the [Accessibility Insights tool](https://accessibilityinsights.io/en/). The tool is capable of inspecting and providing property values for Android, Web, and Windows applications.\n\nAlternatively, you can use the [Inspect.exe tool](https://docs.microsoft.com/en-us/windows/win32/winauto/inspect-objects) for Windows applications installed with the Windows SDKs. This is not recommended as the tool is considered legacy and can often cause oddities in UI when using.\n\n## License\n\nLegerity is made available under the terms and conditions of the [MIT license](LICENSE).\n","funding_links":["https://github.com/sponsors/jamesmcroft","buymeacoffee.com/jamesmcroft"],"categories":[".NET","Libraries"],"sub_categories":["What We Track","Misc"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMADE-Apps%2Flegerity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMADE-Apps%2Flegerity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMADE-Apps%2Flegerity/lists"}