Skip to content
SPECIFICTION
Get listed

Infection vs pymute

Infection

infection.github.io

pymute

github.com

Side by side

FigureInfectionpymute
Price from—Free
Free plan—Yes
Free trial——
Open source——
WebYes—
macOSYes—
LinuxYesYes
Plans published01
Spec score · Mutation Testing Tools7.6 (#11)7.7 (#9)
DistributionThe recommended PHAR distribution bundles PHPUnit, PhpSpec, Codeception and Testo, and the PHAR signature can be verified with the documented GPG key.The README says to install pymute using Cargo from crates.io or directly from GitHub, and requires Rust and Cargo.
How it worksIt creates mutants using predefined mutation operators, runs tests covering changed lines, and records killed or escaped mutants, errors, and timeouts.It creates a temporary directory for each mutant and inserts mutations by manipulating text in Python files rather than operating on the AST.
InstallationThe maker documents PHAR, Phive, Composer, Git, and Homebrew installation methods.The README says to install pymute with Cargo from crates.io or directly from GitHub, and requires Rust and Cargo.
LicenseThe project is released under the BSD-3-Clause License.The repository identifies its license as Unlicense.
PurposeInfection mutates PHP source code and reports changes that a test suite fails to catch.Pymute is a mutation testing tool for Python and Pytest written in Rust.

Plans

Infection

No plans published.

Infection pricing →

pymute

  • Free/open-sourceFree

pymute pricing →

In their own words

Infection

Infection is a PHP mutation-testing library that shows which changes a test suite fails to detect. It creates mutants using predefined operators, runs tests against changed code, and records killed and escaped mutants, errors, and timeouts. Its Mutation Score Indicator measures the share of generated mutations detected by tests; it also reports Mutation Code Coverage and Covered Code Mutation Score Indicator. Infection supports PHPUnit, PhpSpec, Codeception, and Testo, and runs from the command line at a project root. Teams can run mutated tests in parallel, focus analysis on touched lines or files, and set minimum mutation-score thresholds that fail a build. The homepage describes more than 100 mutators grouped into profiles and allows custom mutators. Optional PHPStan and Mago integrations can help catch escaped mutants involving type violations, dead code, and unreachable paths. Installation options include PHAR, Phive, Composer, Git, and Homebrew. A browser playground supports trying PHP code and tests without installing the tools. Infection is free under the BSD-3-Clause license and requires PHP 8.3 or newer plus Xdebug, phpdbg, or pcov.

Visit infection.github.io

pymute

pymute is a free mutation testing tool for Python projects using pytest or tox, written in Rust. It creates a temporary directory for each mutant and changes Python file text rather than operating on the abstract syntax tree. Pytest is the default runner, and documented mutation types include math operators, conjunctions, booleans, control flow, comparisons and numbers. By default, it reports mutants that survive because tests pass; other output levels can show caught mutants or process output. Options let users filter modules with a glob, select tests and mutation types, set thread count and cap the number of mutants. That cap runs a randomly selected subset. Installation uses Cargo from crates.io or GitHub 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 sets up a separate environment and installs the package for each mutant, which the project describes as considerably slower. Parallel threads each need temporary disk space, and a run may fail if /tmp runs out. The repository identifies its license as Unlicense.

Visit github.com