Mutatest vs Mutineer
Mutatest
mutatest.readthedocs.ioMutineer
github.comSide by side
| Figure | Mutatest | Mutineer |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | Yes | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | — |
| API | Yes | — |
| Self-hosted | Yes | — |
| Plans published | 1 | 0 |
| Spec score · Mutation Testing Tools | 8.7 (#1) | 6.5 (#24) |
| Coverage | When coverage data is available, mutation targets can be restricted to lines marked as covered. | Per test coverage can select which tests to run for each mutant, and covered line filtering requires a coverage file. |
| Maintainer | PyPI names Evan Kepner as the author and lists one maintainer account, ekepner. | The repository lists Billy Jones as a maintainer. |
| Purpose | Mutatest is a diagnostic command-line tool for assessing test coverage by checking whether tests detect small code mutations. | Mutineer is a mutation testing framework for JavaScript and TypeScript that changes source code and runs existing tests to reveal defects the tests miss. |
Plans
In their own words
Mutatest
Mutatest is a free command-line tool for Python projects that checks whether tests catch small changes to code. It creates valid mutations from Python’s Abstract Syntax Tree grammar and applies them to local __pycache__ files rather than changing source files. If coverage data is available, it can limit targets to lines marked as covered. Mutations are sampled randomly, with a seed available to make runs reproducible. Command-line controls include run modes, mutation categories, file exclusions, timeouts, reports, and thresholds for surviving mutants; an API supports custom controls. The documentation describes using test commands such as pytest and coverage data to filter targets. Mutatest can raise an exception when surviving mutants meet a configured threshold, including in automated runs such as CI. It supports Linux, macOS, and Windows, and is free under the MIT License. Installation requires Python 3.7 or 3.8; multiprocessing is available on 3.8, but not 3.7. Repeated test runs can be slow, so it is intended for diagnostics rather than every commit across an entire codebase.