{"id":26711686,"url":"https://github.com/swisslife-oss/squadron","last_synced_at":"2025-12-29T17:31:38.333Z","repository":{"id":37561883,"uuid":"200729032","full_name":"SwissLife-OSS/squadron","owner":"SwissLife-OSS","description":"A testing framework for containerized and cloud services","archived":false,"fork":false,"pushed_at":"2024-02-22T16:16:29.000Z","size":1691,"stargazers_count":99,"open_issues_count":21,"forks_count":16,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-05-16T08:44:43.980Z","etag":null,"topics":["cloud","containers","database-testing","integration-testing","messaging-testing","net","squadron","system-testing","testing"],"latest_commit_sha":null,"homepage":"https://swisslife-oss.github.io/squadron/","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/SwissLife-OSS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-05T21:08:11.000Z","updated_at":"2024-02-11T21:50:06.000Z","dependencies_parsed_at":"2023-12-14T18:48:07.662Z","dependency_job_id":"e3d1cc79-12dd-4e00-98a8-7a3814511c93","html_url":"https://github.com/SwissLife-OSS/squadron","commit_stats":{"total_commits":79,"total_committers":21,"mean_commits":3.761904761904762,"dds":0.6962025316455696,"last_synced_commit":"0c94752b7c93f4fea689a384549752a558b9d1b6"},"previous_names":[],"tags_count":74,"template":false,"template_full_name":"SwissLife-OSS/template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissLife-OSS%2Fsquadron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissLife-OSS%2Fsquadron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissLife-OSS%2Fsquadron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwissLife-OSS%2Fsquadron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwissLife-OSS","download_url":"https://codeload.github.com/SwissLife-OSS/squadron/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247166171,"owners_count":20894654,"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":["cloud","containers","database-testing","integration-testing","messaging-testing","net","squadron","system-testing","testing"],"created_at":"2025-03-27T10:30:21.417Z","updated_at":"2025-12-29T17:31:38.282Z","avatar_url":"https://github.com/SwissLife-OSS.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Snapshooter](https://raw.github.com/swissLife-oss/squadron-docs/master/website/static/img/logo_sl_squadron_banner.png)\n\n## [![Nuget](https://img.shields.io/nuget/v/Squadron.Core.svg?style=flat)](https://www.nuget.org/packages/Squadron.Core) [![GitHub Release](https://img.shields.io/github/release/SwissLife-OSS/Squadron.svg?style=flat)](https://github.com/SwissLife-OSS/Squadron/releases/latest) [![Build status](https://dev.azure.com/swisslife-oss/swisslife-oss/_apis/build/status/Squadron/Release%20-%20Squadron)](https://dev.azure.com/swisslife-oss/swisslife-oss/_build/latest?definitionId=31) [![Coverage Status](https://sonarcloud.io/api/project_badges/measure?project=SwissLife-OSS_Squadron\u0026metric=coverage)](https://sonarcloud.io/dashboard?id=SwissLife-OSS_Squadron) [![Quality](https://sonarcloud.io/api/project_badges/measure?project=SwissLife-OSS_Squadron\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=SwissLife-OSS_Squadron)\n\n**Squadron is a testing framework for containerized and cloud services.**\n\nSquadron is a helpful framework which enables you to write tests against dependent services without any overhead. Squadron can provide you isolation in tests through Container Providers or support for all other services through Cloud Providers.\n\nTo get more detailed information about Squadron, go to the [Squadron Docs](https://swisslife-oss.github.io/squadron/)\n\n## Features\n\n### Container Providers\n\n- [x] [MongoDB](https://swisslife-oss.github.io/squadron/docs/mongodb)\n- [x] [MongoDB ReplicaSet](https://swisslife-oss.github.io/squadron/docs/mongodb-rs)\n- [x] [SQL Server](https://swisslife-oss.github.io/squadron/docs/sqlserver)\n- [x] [Elasticsearch](https://swisslife-oss.github.io/squadron/docs/elasticsearch)\n- [x] [Azure Blob and Queues](https://swisslife-oss.github.io/squadron/docs/azure-storage)\n- [x] [RabittMQ](https://swisslife-oss.github.io/squadron/docs/rabbitmq)\n- [x] [Redis](https://swisslife-oss.github.io/squadron/docs/redis)\n- [x] [PostgresSQL](https://swisslife-oss.github.io/squadron/docs/postgresql)\n- [ ] Kafka\n- [x] RavenDB\n- [x] MySQL\n- [x] MariaDB\n- [x] Neo4j\n- [x] S3 with [Minio](https://github.com/minio/minio)\n- [x] FtpServer with [fauria/vsftpd](https://github.com/fauria/docker-vsftpd)\n\n### Cloud Providers\n\n- [x] [Azure Service Bus](https://swisslife-oss.github.io/squadron/docs/azure-cloud-servicebus)\n- [x] Azure Event Hub\n- [x] Azure Storage\n\n## Getting Started\n\nAs getting started we've prepared a simple example how to use Squadron with _MongoDB_.\n\nYou can find samples with quick starts [here](https://github.com/SwissLife-OSS/squadron/tree/master/samples).\n\n### Install\n\nInstall the Squadron nuget package for MongoDB within your test project:\n\n```bash\ndotnet add package Squadron.Mongo\n```\n\n### Access\n\nInject the MongoResource into your test class constructor:\n\n```csharp\npublic class AccountRepositoryTests\n    : IClassFixture\u003cMongoResource\u003e\n{\n    private readonly MongoResource _mongoResource;\n\n    public AccountRepositoryTests(\n        MongoResource mongoResource)\n    {\n        _mongoResource = mongoResource;\n    }\n}\n```\n\n### Use\n\nUse MongoResources to create a database and initialize your repository:\n\n```csharp\n[Fact]\npublic void CreateAccount_AccountExists()\n{\n    // arrange\n    var database = _mongoResource.CreateDatabase();\n    var accountRepository = new AccountRepository(database);\n    var account = new Account();\n\n    // act\n    var addedAccount = accountRepository.Add(account);\n\n    // assert\n    Snapshot.Match(addedAccount);\n}\n```\n\n## Community\n\nThis project has adopted the code of conduct defined by the [Contributor Covenant](https://contributor-covenant.org/)\nto clarify expected behavior in our community. For more information, see the [Swiss Life OSS Code of Conduct](https://swisslife-oss.github.io/coc).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswisslife-oss%2Fsquadron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswisslife-oss%2Fsquadron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswisslife-oss%2Fsquadron/lists"}