{"id":37034174,"url":"https://github.com/automatetheplanet/meissa","last_synced_at":"2026-01-14T04:00:43.360Z","repository":{"id":30071212,"uuid":"121857266","full_name":"AutomateThePlanet/Meissa","owner":"AutomateThePlanet","description":"Cross-platform Distributed Test Runner. Executes tests in parallel, time balanced on multiple machines.","archived":false,"fork":false,"pushed_at":"2024-10-20T15:18:11.000Z","size":2136,"stargazers_count":86,"open_issues_count":10,"forks_count":25,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-09-23T13:56:40.522Z","etag":null,"topics":["cross-platform","distributed","mstest","nunit","test-automation","test-runner","testing-tools"],"latest_commit_sha":null,"homepage":"","language":"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/AutomateThePlanet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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":"2018-02-17T13:25:37.000Z","updated_at":"2025-04-23T05:05:53.000Z","dependencies_parsed_at":"2024-10-20T21:06:24.528Z","dependency_job_id":null,"html_url":"https://github.com/AutomateThePlanet/Meissa","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/AutomateThePlanet/Meissa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutomateThePlanet%2FMeissa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutomateThePlanet%2FMeissa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutomateThePlanet%2FMeissa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutomateThePlanet%2FMeissa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AutomateThePlanet","download_url":"https://codeload.github.com/AutomateThePlanet/Meissa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AutomateThePlanet%2FMeissa/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28408953,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T01:52:23.358Z","status":"online","status_checked_at":"2026-01-14T02:00:06.678Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cross-platform","distributed","mstest","nunit","test-automation","test-runner","testing-tools"],"created_at":"2026-01-14T04:00:38.466Z","updated_at":"2026-01-14T04:00:43.340Z","avatar_url":"https://github.com/AutomateThePlanet.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build status](https://ci.appveyor.com/api/projects/status/p2rek52nkxv93ma8?svg=true)](https://ci.appveyor.com/project/angelovstanton/meissa) [![Join the chat at https://gitter.im/meissarunner/Lobby](https://badges.gitter.im/meissarunner/Lobby.svg)](https://gitter.im/meissarunner/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n![](https://img.shields.io/badge/license-%20Apache--2.0-blue.svg) [![Overview](https://img.shields.io/badge/docs-Overview-green.svg?style=flat)](https://github.com/angelovstanton/Meissa) [![ChangeLog](https://img.shields.io/badge/docs-ChangeLog-green.svg?style=flat)](https://github.com/angelovstanton/Meissa/wiki/Change-Log) [![download](https://img.shields.io/badge/download-1.0.0.0-orange.svg)](https://github.com/angelovstanton/Meissa)\n\n![Meissa Description](https://i.imgur.com/aMVooJy.png)\n\nMEISSA is a distributed tests runner. It is built using the latest technologies such as .NET Core, ASPNET.Core MVC and more. \n\nIt is completely cross-platform able to run tests on Windows, Linux and OSX. \n\nIt is designed to be **programming language agnostic** which means that it can **run tests written on different languages**. \n\nRight now it can run .NET Framework and .NET Core tests, but it is written in a way that quickly we can add support for Java and other languages and runners.\n\nFeatures\n--------\n\n![MEISSA Features](https://i.imgur.com/MyFQprW.png)\n\n**Parallel on Agents**\n\nThe tests execution tremendously speeds up from the distribution on multiple machines. However, it can be further improved by executing the tests in parallel on the tests agents. It can parallelize the tests even in a single container.\n\n**Cross-Platform**\n\nRuns tests on Windows, OSX, and Linux.\n\n**Smart Tests Balancing**\n\nSmartly balances the tests across remote machines based on previous tests execution times which can significantly improve the overall tests runs’ time.\n\n**Failing Tests Retry**\n\nRetries the failing tests multiple times to see whether there are real problems in the system under tests or some random environment issue occurred during the run. In the end, the tool produces single tests results file. You can specify a threshold %. If more than the specified number of tests are failing, they won't be retried. \n\n**Custom Parameters**\n\nSupports passing custom data to your tests through the runner. Like unique CI build number or some specific folder. You will be able to access the data from your tests through environmental variables.\n\n**Built-in Extensibility** \n\nExecutes custom logic without modifying the source code. Offers plug-in API.\n\n**Test Framework and Programming Language Agnostic**\n\nRuns tests written on different test frameworks no matter the language- C#, Java, etc. Offers plug-in API.\n\n**Single CLI** \n\nSingle common command-line interface. No complex installations or configurations.\n\n**Safe Test Run Abortion**\n\nKeeps the clean state of agents and fast test run abortion.\n\nHow Do We Use It?\n-------------------\n1. **Start MEISSA server**\n```\nmeissaserver\n```\n\nTo coordinate all agents and runners MEISSA has its own server with its own DB.\n\nBy the way in order to run MEISSA you don’t even need to install .NET Core since or other dependencies it is completely portable. You just download it as zip, unzip it and that is. Everything you need, runners, agents, servers, DBs is there.\n\n2. **Start MEISSA test agent**\n```\nmeissa agent --tag=\"APIAgent\" --server=\"http://IPServerMachine:89\"\n```\n\nUsually, you have one test agent per machine. So, more machines you have, faster your tests will be executed.\n\n3. **Start MEISSA tests runner**\n```\nmeissa runner --results=\"pathToResults\\result.trx\" \n--tag=\"APIAgent\" --testTechnology=\"MSTest\" \n--library=\"pathToBuildedFiles\\SampleTestProj.dll\" --server=\"http://IPServerMachine:89\"\n```\n\nUsually, you start the runner from CI job. The typical workflow will be. Download the tests source code. Build it. Execute tests with MEISSA. Publish the results produced by MEISSA.\n\n### Advanced Parameters ###\n```\n--nativeRunnerArguments=\"--verbosity=\"detailed\"\"\n``` \n\nThis argument will pass the value to the native tests runner. Here we tell the .NET Core tests runner to produce detailed log.\n```\n--retriedResults=\"pathToResults\\retriedResult.trx\" --retries=3 --threshold=90\n```\n\nWith this one we tell MEISSA to retry the failed tests three times if less than 5% of all tests have failed.\n```\n--filter=\"test.FullName != \\\"TestName\\\" AND !test.Categories.Contains(\\\"CI\\\")\"\n```\n\nMEISSA has built-in complex test filter parser and we can write complex queries to filter the tests.\n```\n--customArguments=\"BuildNumber=42\" \n```\n\nSometimes it is useful to pass data to tests from the runner. For example, you may need to pass the current build number so that you can create a folder in your tests. If you use this argument each agent will create an environmental variable with the name BuildNumber and it will assign the value 42. After that, it is an easy job to get the value from your tests.\n```\n--timeBased\n```\n\nInstructs MEISSA to balance the tests not based on the count but rather than on the previous execution times of the tests. To use it you need to execute all of your tests at least one time. This is quite useful because some of your UI tests may execute for 1 minute or more but most of them for 30 seconds or less. As I previously mentioned, the whole tests execution time is equal to the slowest sub-run. This feature can sometimes drastically decrease the execution time.\n```\n--parallelRun\n```\n\nInstructs MEISSA to execute in parallel the tests on each agent. You can even specify how many processes to be spawn. This is most useful for unit, API or headless UI tests.\n```\n--sameMachineByClass\n```\n\nThe tests from a single class will be executed on the same machine.\n\n\nGetting Started\n---------------\n\nOpen CLI and execute\n```\ndotnet tool install --global meissaserver\n```\nThis will install the MEISSA server as a global tool.\n```\ndotnet tool install --global meissa\n```\nThis will install the MEISSA agent + runner as a global tool.\n\nTo update to the latest version execute:\n```\ndotnet tool update --global meissaserver\n```\n```\ndotnet tool update --global meissa\n```\n**Note**: The new update feature is written in a way to preserve the data important for distributing your tests- like previous test execution times.\n\nGet Involved\n--------------\n\n- Report bugs \n- Suggest new features \n- Help us write more test runners\n- Add more unit tests\n- Optimize the performance\n- If you have any questions or suggestions you can post them to our **[forum](https://bellatrix.solutions/forums/forums/test/meissa-test-runner/)**.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomatetheplanet%2Fmeissa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fautomatetheplanet%2Fmeissa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fautomatetheplanet%2Fmeissa/lists"}