Skip to content
SPECIFICTION
Get listed

Mutatest vs mutmut

Mutatest

mutatest.readthedocs.io

mutmut

mutmut.readthedocs.io

Side by side

FigureMutatestmutmut
Price fromFree—
Free planYes—
Free trial——
Open sourceYes—
WindowsYesYes
macOSYesYes
LinuxYesYes
APIYes—
Self-hostedYesYes
Plans published10
Spec score · Mutation Testing Tools8.7 (#1)7.2 (#16)
Parallel executionMultiprocessing is supported on Python 3.8; parallelization is not supported on Python 3.7.The project lists parallel and fast execution as features.
PurposeMutatest is a diagnostic command-line tool for assessing test coverage by checking whether tests detect small code mutations.mutmut is a mutation testing system for Python focused on ease of use.

Plans

Mutatest

  • MutatestFree

Mutatest pricing →

mutmut

No plans published.

mutmut pricing →

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.

Visit mutatest.readthedocs.io

mutmut

mutmut is a free, open-source mutation testing system for Python. It makes small code changes called mutants so developers can check whether tests detect them. Its listed operators increment integer literals by one, change < to <=, and swap break and continue. The project supports pytest and remembers completed work for incremental runs, selecting tests to run for each mutant. An interactive terminal interface lets users browse mutants, write one to disk, and rerun individual cases after adding tests. Runs are described as parallel; configured coverage.py can restrict mutations to covered lines. The documentation also supports filtering with mypy or pyrefly, but not pyright or ty. For CI/CD, mutmut can export statistics and generate mutation-score badge JSON for a Shields endpoint. Configuration in setup.cfg or pyproject.toml can specify source paths and pytest selection arguments. It requires Python 3.10 or later and a system with fork support, so Windows users need WSL. Version 3 and later mutate code inside functions; version 2 uses a different model for code outside functions. The package is licensed under BSD-3-Clause.

Visit mutmut.readthedocs.io