- Home
- Mutation Testing Tools
- Mutatest
Mutatest
What it is
Mutatest is a free command-line diagnostic tool for Python projects that checks whether tests catch small code mutations. It generates valid mutants using Python’s Abstract Syntax Tree grammar and changes local __pycache__ files rather than source files. When coverage data is available, it can limit mutation targets to lines marked covered. Mutation locations and candidate changes are sampled randomly; a seed can make trials reproducible. Command-line controls include run modes, mutation categories, file exclusions, timeouts, output reports, and thresholds for surviving mutants. An API supports custom mutation controls. The documentation describes running test commands such as pytest and using coverage data to filter targets. Mutatest can raise an exception when the number of surviving mutants meets a configured threshold, which can be used in an automated CI stage. It supports Linux, macOS, and Windows; installation requires Python 3.7 or 3.8. Multiprocessing is available on Python 3.8, but not 3.7. It is free and open source under the MIT License.
For and against
For
- Restricts targets to covered lines when coverage data is available
- Seeded trials can be reproducible
- Offers command-line controls and a custom-control API
- Can raise an exception at a survivor threshold
- Runs on Linux, macOS, and Windows
Against
- Installation requires Python 3.7 or 3.8
- Only pytest has been tested to date
- Parallelization is unsupported on Python 3.7
- Repeated test-suite runs can make mutation testing slow
The verdict
Mutatest provides mutation-based diagnostics with coverage filtering, reporting, and a configurable survivor threshold. Its Python version requirements and documented runtime limitations are important to consider before using it across a full codebase or in frequent commit runs.
Who it suits
Mutatest suits Python developers who want a diagnostic check of whether their tests catch small code changes. It can also fit automated runs that use a surviving-mutant threshold, provided the project uses a supported Python version.
Plans and prices
Mutatest
Free and open source under the MIT License
Read 2 Oct 2026 · mutatest.readthedocs.io
On the record
- API
- Mutatest includes an API for custom mutation controls.mutatest.readthedocs.io · read 2 Oct 2026
- API objects
- The documented API centers on Genome, GenomeGroup and Mutant objects.mutatest.readthedocs.io · read 15 Oct 2026
- AST mutation engine
- Mutations are generated from Python's Abstract Syntax Tree grammar.mutatest.readthedocs.io · read 15 Oct 2026
- CI use
- Mutatest can raise an exception when surviving mutants meet a configured threshold, for use in automated runs such as a continuous integration stage.mutatest.readthedocs.io · read 2 Oct 2026
- CLI configuration
- Settings can be supplied through mutatest.ini or setup.cfg sections named mutatest or tool:mutatest.github.com · read 15 Oct 2026
- Controls
- The command line supports run modes, mutation category selection, file exclusions, timeouts, output reports, and survivor thresholds.mutatest.readthedocs.io · read 2 Oct 2026
- Coverage
- When coverage data is available, mutation targets can be restricted to lines marked as covered.mutatest.readthedocs.io · read 2 Oct 2026
- Coverage guidance
- Coverage data can restrict mutation targets to code executed by tests.mutatest.readthedocs.io · read 15 Oct 2026
- Custom API
- The package exposes an API for custom mutation controls.mutatest.readthedocs.io · read 15 Oct 2026
- Diagnostic positioning
- The installation guide describes Mutatest as a diagnostic tool and cautions that running a full suite repeatedly can be slow for continuous integration.github.com · read 15 Oct 2026
- Documentation depth
- Documentation includes installation, command-line controls, API reference, API tutorial, mutation operators and contributing guidance.mutatest.readthedocs.io · read 15 Oct 2026
- Execution modes
- The command line supports fast and detection or survival stopping modes, including f, s, d and sd.github.com · read 15 Oct 2026
- Independent activity record
- Ecosyste.ms reported the last repository push as February 17, 2023.awesome.ecosyste.ms · read 15 Oct 2026
- Independent popularity record
- Ecosyste.ms reported 97 stars, 18 forks and two watchers when it last synced the repository.awesome.ecosyste.ms · read 15 Oct 2026
- Independent repository record
- Ecosyste.ms records the repository as created on December 22, 2018, with MIT licensing.awesome.ecosyste.ms · read 15 Oct 2026
- Install channels
- Installation is documented through pip, conda-forge or a local source checkout.mutatest.readthedocs.io · read 15 Oct 2026
- Integrations
- The documentation describes running test commands such as pytest and using coverage data to filter mutation targets.mutatest.readthedocs.io · read 2 Oct 2026
- Known limitation
- The documentation warns that repeated test-suite runs can make mutation testing slow, so it is intended as a diagnostic tool rather than a run over an entire codebase on every commit.mutatest.readthedocs.io · read 2 Oct 2026