Muter vs pytest-gremlins
Muter
github.compytest-gremlins
github.comSide by side
| Figure | Muter | pytest-gremlins |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| macOS | Yes | — |
| Linux | — | Yes |
| Self-hosted | Yes | — |
| Plans published | 1 | 1 |
| Spec score · Mutation Testing Tools | 7.5 (#14) | 7.7 (#10) |
| Integrations | The README documents Xcode integration, Homebrew installation, and configuration support for Xcode projects and workspaces and Swift Package Manager. | The documentation describes compatibility with pytest-xdist and a GitHub Action for running mutation tests and enforcing a score threshold. |
| Purpose | Muter is a mutation testing utility for assessing the quality of Swift test suites. | pytest-gremlins is a pytest plugin that injects small code mutations and checks whether tests catch them. |
| Reports | Muter can output reports as plain text, JSON, HTML, or Xcode issue navigator results. | It supports console, HTML, and JSON reports, including multiple report formats in one run. |
Plans
In their own words
Muter
Muter is a free, open-source mutation testing utility for Swift test suites on macOS. It changes code in a complete copy of the codebase, leaving the original untouched, then reports mutation scores for the full suite and individual files. Runs can happen in Xcode, from the command line or incrementally in continuous integration. Configuration covers Xcode projects, workspaces and Swift Package Manager. Reports can be plain text, JSON, HTML or Xcode issue navigator results, including surviving mutants. Documented operators replace relational operators, remove side effects, change logical connectors and swap ternary expressions. Muter supports projects tested with xcodebuild, including iOS, macOS, tvOS and watchOS applications, but the utility runs only on macOS 10.15 or newer. It supports Swift, not Objective-C. Any test target or suite can be used with Swift application code, although UI tests may take a long time. The project states that it has no network access and collects no analytics.
pytest-gremlins
pytest-gremlins is a pytest plugin for checking whether an existing test suite catches small changes to code. It runs mutation tests against Python projects and can report results in the console, HTML, or JSON, including multiple formats in one run. Getting started requires Python 3.11 or later, pytest 7.0 or later, and existing tests; installation is documented with pip, uv, and Poetry. The project’s quick-start command is `pytest --gremlins`. To manage execution, it uses mutation switching, coverage-guided test selection, incremental analysis, and parallel execution, and it works with pytest-xdist. Options can be set in `pyproject.toml` or with command-line flags, while inline pragmas can pardon specific mutations. A GitHub Action can run the checks and fail a workflow if its score misses a threshold; CI examples also cover GitLab CI, CircleCI, and Dagger. It is a free, MIT-licensed package for Linux, classified as Alpha. The guide warns that an initial run may take 10–100 times as long as a normal test run, though caching can shorten later runs. It also notes that equivalent mutations can make a perfect score unattainable and unnecessary.