DocsAdaptersMutmut

mutmut Adapter

Quell's mutmut adapter reads from .mutmut-cache — the SQLite database that mutmut populates after a run. It automatically detects whether you're on mutmut 2.x or 3.x.

Setup

pip install mutmut quelltest

Run mutmut first:

mutmut run

Then use Quell:

quell scan --tool mutmut   # default, --tool flag optional

Version detection

Quell inspects the .mutmut-cache schema at runtime:

  • mutmut 3.x: has a MutantStatus table → queried directly via SQL
  • mutmut 2.x: has a mutant table → uses mutmut results + mutmut show <id> CLI

No configuration needed — detection is automatic.

Configuring mutmut

Create a setup.cfg or pyproject.toml section for mutmut:

# pyproject.toml
[tool.mutmut]
paths_to_mutate = "src/"
tests_dir = "tests/"
runner = "python -m pytest"

Or setup.cfg:

[mutmut]
paths_to_mutate=src/
runner=python -m pytest

Running mutmut efficiently

# Run only on a specific file
mutmut run src/payments.py

# Run only specific operators (mutmut 3.x)
mutmut run --operators BoundaryMutation

# Run with parallelism
mutmut run --j 4

Cache location

The .mutmut-cache file is created in your project root. Quell expects it there by default. Override with --root:

quell scan --root /path/to/project

Troubleshooting

.mutmut-cache not found:

# Make sure mutmut has been run
mutmut run

# Check the file exists
ls -la .mutmut-cache

All mutants show as UNKNOWN:

This means Quell couldn't parse the diff from mutmut show. This can happen with very complex mutations or custom mutation operators. Configure an LLM provider to handle these.

Windows: mutmut 3.x requires Linux/macOS. Use WSL on Windows.