{"id":13563348,"url":"https://github.com/go-gremlins/gremlins","last_synced_at":"2026-03-08T02:04:47.284Z","repository":{"id":40359837,"uuid":"506503567","full_name":"go-gremlins/gremlins","owner":"go-gremlins","description":"A mutation testing tool for Go.","archived":false,"fork":false,"pushed_at":"2026-01-13T05:23:56.000Z","size":5287,"stargazers_count":282,"open_issues_count":24,"forks_count":27,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-30T16:43:20.824Z","etag":null,"topics":["go","golang","mutation-testing","testing","testing-techniques","testing-tools"],"latest_commit_sha":null,"homepage":"https://gremlins.dev","language":"Go","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/go-gremlins.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","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":"2022-06-23T05:05:42.000Z","updated_at":"2026-01-26T15:28:11.000Z","dependencies_parsed_at":"2023-12-18T09:48:00.814Z","dependency_job_id":"5fe0fd0c-0baf-447e-a96a-0711eb4b93dc","html_url":"https://github.com/go-gremlins/gremlins","commit_stats":null,"previous_names":["k3rn31/gremlins"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/go-gremlins/gremlins","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gremlins%2Fgremlins","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gremlins%2Fgremlins/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gremlins%2Fgremlins/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gremlins%2Fgremlins/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/go-gremlins","download_url":"https://codeload.github.com/go-gremlins/gremlins/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-gremlins%2Fgremlins/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30242404,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"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":["go","golang","mutation-testing","testing","testing-techniques","testing-tools"],"created_at":"2024-08-01T13:01:18.127Z","updated_at":"2026-03-08T02:04:47.261Z","avatar_url":"https://github.com/go-gremlins.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cp align=\"center\" style=\"text-align: center\"\u003e\n  \u003cimg alt=\"Gremlins mascotte\" src=\"docs/docs/assets/images/gremlins_mascotte.png\" /\u003e\n  \u003ch1 align=\"center\" style=\"text-align: center\"\u003eGremlins\u003c/h1\u003e\n  \u003cp align=\"center\" style=\"text-align: center\"\u003eA mutation testing tool for Go\u003c/p\u003e\n\u003c/p\u003e\n\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/go-gremlins/gremlins/ci.yml?logo=github)](https://github.com/go-gremlins/gremlins/actions/workflows/ci.yml)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/go-gremlins/gremlins/gremlins.yml?label=gremlins\u0026logo=github)](https://github.com/go-gremlins/gremlins/actions/workflows/gremlins.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/go-gremlins/gremlins)](https://goreportcard.com/report/github.com/go-gremlins/gremlins)\n[![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/go-gremlins/gremlins?logo=codeclimate)](https://codeclimate.com/github/go-gremlins/gremlins/maintainability)\n[![DeepSource](https://deepsource.io/gh/go-gremlins/gremlins.svg/?label=active+issues\u0026token=posNnh5FHpZG9DhM23YH7h6d)](https://deepsource.io/gh/go-gremlins/gremlins/?ref=repository-badge)\n[![Codacy grade](https://img.shields.io/codacy/grade/744b4ac720c34518b7578204cfc61997?logo=codacy)](https://www.codacy.com/gh/go-gremlins/gremlins/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=go-gremlins/gremlins\u0026amp;utm_campaign=Badge_Grade)\n[![Codecov](https://img.shields.io/codecov/c/github/go-gremlins/gremlins?logo=codecov)](https://codecov.io/gh/go-gremlins/gremlins)\n[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fgo-gremlins%2Fgremlins.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fgo-gremlins%2Fgremlins?ref=badge_shield)\n\nGremlins is a mutation testing tool for Go. It has been made to work well on _smallish_ Go modules, for example\n_microservices_, on which it helps validate the tests, aids the TDD process and can be used as a CI quality gate.\nAs of now, Gremlins doesn't work very well on very big Go modules, mainly because a run can take hours to complete.\n\n![](docs/docs/assets/images/gremlins-term.webp)\n\n## Gremlins version\n\nGremlins is still in its 0.x.x release, which, as per SemVer, doesn't guarantee backward compatibility. What this\nmeans for Gremlins is that configuration flags and/or configuration files can change among minor releases. This may\nbe important if you use Gremlins in automated builds, for example in _continuous integration_ pipelines.\n\nAlso, while in 0.x.x releases, only the current minor release will be maintained; if we are in v0.2.0, no patch\nreleases will be provided for the v0.1.0 line.\nOnce Gremlins will reach it's 1.x.x release, it will start to be backward compatible, and we'll decide how many\nreleases to maintain at the same time (ex. up to two minors before, as Go itself does).\n\n## What is Mutation Testing\n\nCode coverage is unreliable as a measure of test quality. It is too easy to have tests that exercise a piece of code but\ndon't test anything at all.\n\n_Mutation testing_ works by mutating the code exercised by the tests and verifying if the mutation is caught by\nthe test suite. Imagine _gremlins_ going into your code and messing around: will your test suit catch their damage?\n\nHere is a nice [intro to mutation testing](https://pedrorijo.com/blog/intro-mutation/).\n\n## How to use Gremlins\n\nPlease refer to the [documentation](https://gremlins.dev) for instructions on how to obtain, configure and use Gremlins.\n\n### Quick start\n\nThis is just to get you started, do not forget to check the complete [documentation](https://gremlins.dev).\n\nDownload the pre-built binary for your OS/ARCH from\nthe [release page](https://github.com/go-gremlins/gremlins/releases/latest)\nand put it somewhere in the `PATH`, then:\n\n```shell\ngremlins unleash\n```\n\nGremlins will report each mutation as:\n\n- `RUNNABLE`: In _dry-run_ mode, a mutation that can be tested.\n- `NOT COVERED`: A mutation not covered by tests; it will not be tested.\n- `KILLED`: The mutation has been caught by the test suite.\n- `LIVED`: The mutation hasn't been caught by the test suite.\n- `TIMED OUT`: The tests timed out while testing the mutation: the mutation actually made the tests fail, but not\n  explicitly.\n- `NOT VIABLE`: The mutation makes the build fail.\n\n## What inspired Gremlins\n\nMutation testing exists since the early days of computer science, so loads of papers and articles do exists. Gremlins is\ninspired from those.\n\nAmong the existing mutation testing tools, Gremlins is inspired especially by [PITest](https://pitest.org/).\n\n### Other Mutation Testing tools for Go\n\nThere is not much around, except from:\n\n- [go-mutesting](https://github.com/avito-tech/go-mutesting#list-of-mutators)\n\n## Contributing\n\nSee [contributing](docs/CONTRIBUTING.md).\n\n## License\n\nGremlins is licensed under the [Apache 2.0 License](LICENSE).\nThe Gremlins documentation is licensed\nunder [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/?ref=chooser-v1).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-gremlins%2Fgremlins","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgo-gremlins%2Fgremlins","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-gremlins%2Fgremlins/lists"}