FREEDOM251

Freedom251 › Mutation Testing Tools

pymute

Free plan Linux

Visit pymute Alternatives Pricing

pymute's own site

What pymute is

pymute is a free mutation testing tool for Python projects that use pytest or tox. Written in Rust, it creates a temporary project directory for each mutant and changes Python source text rather than working with the abstract syntax tree. Pytest is the default runner; tox is another option. The documented mutations cover math operators, conjunctions, booleans, control flow, comparisons, and numbers. By default, the output highlights mutants that survive because tests pass; other output levels can show caught mutants or process output. You can limit files with a module glob, choose tests and mutation types, set the thread count, and cap the number of mutants. That cap selects a random subset. Installation is through Cargo and requires Rust and Cargo. With pytest, tests need to run from the project root in independent copies and exercise the local copy rather than an installed package. Tox installs the package in a separate environment for each mutant, which takes considerably longer. Parallel threads also need temporary disk space, and runs can fail if /tmp fills up.

Who it suits

pymute suits Python developers who want to check how well pytest or tox catches code changes. It is a fit for projects able to meet its pytest project-root constraint or accept tox's slower environment setup.

What it does well

  • Free to use; installation is through Cargo.
  • Supports pytest and tox test runners.
  • Offers six documented mutation categories.
  • Can select tests and limit mutations by module.
  • Can run mutants in parallel.

What to know first

  • Requires Rust and Cargo.
  • Pytest requires root-based tests on local project copies.
  • Tox setup is considerably slower.
  • Parallel threads need temporary disk space.

Limits

The free plan is listed as free. No free-plan quota is listed; parallel threads each need temporary disk space, and a run may fail if /tmp runs out.

Plans

PlanBilled and limitsPrice
Free/open-sourceInstall with Cargo; requires Rust and CargoFree

As github.com lists them, read 8 Oct 2026. The maker's own page has the final word.

Getting started

  1. Use a Linux environment.
  2. Install Rust and Cargo.
  3. Install pymute with Cargo from crates.io or directly from GitHub.
  4. Choose pytest, the default runner, or tox.
  5. For pytest, run tests from the project root so each independent copy tests its local package.

Verdict

pymute provides configurable mutation testing for Python with pytest or tox, plus parallel execution and surviving-mutant reports. Before adopting it, account for the Rust and Cargo requirement, the pytest project layout constraint, and the disk space used by parallel threads.

Questions

How much does pymute cost?

The Free/open-source plan costs nothing.

Which test runners does it support?

It supports pytest and tox, with pytest as the default.

What languages and platforms are supported?

The listed language is Python, and the listed platform is Linux.

How do I install pymute?

Install it with Cargo from crates.io or directly from GitHub. Rust and Cargo are required.

Is pymute open source?

The repository identifies its license as Unlicense.

Who makes pymute?

The GitHub profile identifies Leonard Sasse as the maker.

Facts from pymute's own pages

Configuration
Users can restrict mutations by module glob, select tests, choose mutation types, set thread count, and cap the number of mutants. · github.com, 7 Oct 2026
Distribution
The README says to install pymute using Cargo from crates.io or directly from GitHub, and requires Rust and Cargo. · github.com, 8 Oct 2026
How it works
It creates a temporary directory for each mutant and inserts mutations by manipulating text in Python files rather than operating on the AST. · github.com, 7 Oct 2026
Installation
The README says to install pymute with Cargo from crates.io or directly from GitHub, and requires Rust and Cargo. · github.com, 7 Oct 2026
License
The repository identifies its license as Unlicense. · github.com, 8 Oct 2026
Maker
The Cargo manifest names Leonard Sasse as the author. · github.com, 8 Oct 2026
Mutation approach
It creates a temporary directory for each mutant and inserts mutations by editing Python file text rather than operating on the AST. · github.com, 8 Oct 2026
Mutation types
Its listed mutation types include math operators, conjunctions, booleans, control flow, comparison operators, and numbers. · github.com, 8 Oct 2026
Output
By default, it displays mutants that tests missed, with optional caught and process output levels. · github.com, 8 Oct 2026
Parallelism
The --num-threads option controls how many mutants run in parallel, and each thread uses temporary disk space. · github.com, 8 Oct 2026
Project layout constraint
With pytest, the project’s tests need to run from the project root in independent copies and test the local copy rather than an installed package. · github.com, 7 Oct 2026
Purpose
Pymute is a mutation testing tool for Python and Pytest written in Rust. · github.com, 8 Oct 2026
Pytest requirement
With pytest, tests should run from the project root in independent project copies and test the local copy rather than an installed package. · github.com, 8 Oct 2026
Resource use
The README notes that each parallel thread needs temporary disk space and may fail if /tmp runs out of space. · github.com, 7 Oct 2026
Sampling
The --max-mutants option runs a randomly sampled subset of mutants. · github.com, 8 Oct 2026
Scoping
The --modules option filters files using a glob, and files named test_* or ending in *_test.py are automatically excluded. · github.com, 8 Oct 2026
Test runners
It supports pytest as the default runner and tox as an alternative. · github.com, 8 Oct 2026
Test selection
The --tests option runs selected tests, which the README recommends for quicker iteration on specific modules. · github.com, 8 Oct 2026
Tox limitation
Tox sets up a virtual environment and installs the package for each mutant, which the README says is considerably slower. · github.com, 8 Oct 2026
tox tradeoff
The README says tox creates a separate virtual environment and installs the package for each mutant, but is considerably slower because environments must be set up. · github.com, 7 Oct 2026
Version
The repository Cargo manifest lists version 0.2.1 and author Leonard Sasse. · github.com, 7 Oct 2026

Where pymute stands on Freedom251

Look at these too