Skip to content
SPECIFICTION
Get listed

Mutant vs pymute

Mutant

github.com

pymute

github.com

Side by side

FigureMutantpymute
Price from$20.83/moFree
Free planYesYes
Free trial——
Open source——
macOSYes—
LinuxYesYes
Plans published41
Spec score · Mutation Testing Tools8.2 (#5)7.7 (#9)
PurposeMutant is mutation testing for Ruby that systematically modifies code and verifies that tests catch each change.Pymute is a mutation testing tool for Python and Pytest written in Rust.

Plans

Mutant

  • Open sourceFree
  • Commercial monthly$30 a month
  • Commercial yearly$250 a year
  • EnterprisePriced on request

Mutant pricing →

pymute

  • Free/open-sourceFree

pymute pricing →

In their own words

Mutant

Mutant is Ruby mutation-testing software that changes code in controlled ways to check whether tests catch the changes. It alters arithmetic, logical and bitwise operators, removes statements, and changes return values. It works with RSpec, Minitest and Test::Unit, and supports incremental runs for CI. Supported Ruby versions are 3.2, 3.3, 3.4 and 4.0 for runtime, syntax and mutations. Rails support is verified for versions 7.2, 8.0 and 8.1, with parallel-worker database isolation for PostgreSQL and SQLite. Mutant runs on developers’ machines or in CI, and includes parallel execution and reports of surviving mutants. It cannot generate mutations for methods defined inside closures, including methods created with module_eval, class_eval, define_method or define_singleton_method. The open-source plan is free for public repositories with the full feature set. Commercial monthly pricing is $30 a month per developer; yearly pricing is $250 a year per developer. CI use requires no additional subscriptions.

Visit github.com

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