cargo-mutants vs mutmut
cargo-mutants
mutants.rsmutmut
mutmut.readthedocs.ioSide by side
| Figure | cargo-mutants | mutmut |
|---|---|---|
| Price from | — | — |
| Free plan | — | — |
| Free trial | — | — |
| Open source | — | — |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | — | Yes |
| Plans published | 0 | 0 |
| Spec score · Mutation Testing Tools | 7.5 (#12) | 7.2 (#16) |
| Configuration | Options can be configured in `.cargo/mutants.toml`, and the guide recommends checking that file into the source tree. | Configuration is supported in setup.cfg or pyproject.toml, including source paths and pytest test selection arguments. |
| Purpose | cargo-mutants is a mutation testing tool for Rust that finds places where bugs could be inserted without causing tests to fail. | mutmut is a mutation testing system for Python focused on ease of use. |
In their own words
cargo-mutants
cargo-mutants has no write-up on Specifiction yet; its figures are above.
mutmut
mutmut is a free, open-source mutation testing system for Python. It makes small code changes called mutants so developers can check whether tests detect them. Its listed operators increment integer literals by one, change < to <=, and swap break and continue. The project supports pytest and remembers completed work for incremental runs, selecting tests to run for each mutant. An interactive terminal interface lets users browse mutants, write one to disk, and rerun individual cases after adding tests. Runs are described as parallel; configured coverage.py can restrict mutations to covered lines. The documentation also supports filtering with mypy or pyrefly, but not pyright or ty. For CI/CD, mutmut can export statistics and generate mutation-score badge JSON for a Shields endpoint. Configuration in setup.cfg or pyproject.toml can specify source paths and pytest selection arguments. It requires Python 3.10 or later and a system with fork support, so Windows users need WSL. Version 3 and later mutate code inside functions; version 2 uses a different model for code outside functions. The package is licensed under BSD-3-Clause.