Skip to content
SPECIFICTION
Get listed

Muter vs pymute

Muter

github.com

pymute

github.com

Side by side

FigureMuterpymute
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
macOSYes—
Linux—Yes
Self-hostedYes—
Plans published11
Spec score · Mutation Testing Tools7.5 (#14)7.7 (#9)
PurposeMuter is a mutation testing utility for assessing the quality of Swift test suites.Pymute is a mutation testing tool for Python and Pytest written in Rust.

Plans

Muter

  • Open-source MuterFree

Muter pricing →

pymute

  • Free/open-sourceFree

pymute pricing →

In their own words

Muter

Muter is a free, open-source mutation testing utility for Swift test suites on macOS. It changes code in a complete copy of the codebase, leaving the original untouched, then reports mutation scores for the full suite and individual files. Runs can happen in Xcode, from the command line or incrementally in continuous integration. Configuration covers Xcode projects, workspaces and Swift Package Manager. Reports can be plain text, JSON, HTML or Xcode issue navigator results, including surviving mutants. Documented operators replace relational operators, remove side effects, change logical connectors and swap ternary expressions. Muter supports projects tested with xcodebuild, including iOS, macOS, tvOS and watchOS applications, but the utility runs only on macOS 10.15 or newer. It supports Swift, not Objective-C. Any test target or suite can be used with Swift application code, although UI tests may take a long time. The project states that it has no network access and collects no analytics.

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