Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sourcefrog/cargo-mutants
:zombie: Inject bugs and see if your tests catch them!
https://github.com/sourcefrog/cargo-mutants
cargo cargo-plugin cargo-subcommand mutation-testing mutations rust rust-lang testing
Last synced: 3 months ago
JSON representation
:zombie: Inject bugs and see if your tests catch them!
- Host: GitHub
- URL: https://github.com/sourcefrog/cargo-mutants
- Owner: sourcefrog
- License: mit
- Created: 2021-09-08T15:56:21.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-31T03:40:34.000Z (3 months ago)
- Last Synced: 2024-08-01T05:44:53.198Z (3 months ago)
- Topics: cargo, cargo-plugin, cargo-subcommand, mutation-testing, mutations, rust, rust-lang, testing
- Language: Rust
- Homepage: https://mutants.rs/
- Size: 2.9 MB
- Stars: 490
- Watchers: 7
- Forks: 27
- Open Issues: 46
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-rust - cargo-mutants - mutants](https://crates.io/crates/cargo-mutants)] - Finds inadequately tested code by injecting mutations, no source changes required. [![build badge](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml/badge.svg?branch=main&event=push)](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml?query=branch%3Amain) (Development tools / Testing)
- awesome-rust-cn - cargo-mutants - mutants](https://crates.io/crates/cargo-mutants)] (开发工具 Development tools / 测试 Testing)
- awesome-rust-testing - cargo-mutants
- awesome-rust - cargo-mutants - mutants](https://crates.io/crates/cargo-mutants)] - Finds inadequately tested code by injecting mutations, no source changes required. [![build badge](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml/badge.svg?branch=main&event=push)](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml?query=branch%3Amain) (Development tools / Testing)
- fucking-awesome-rust - cargo-mutants - mutants](crates.io/crates/cargo-mutants)] - Finds inadequately tested code by injecting mutations, no source changes required. [![build badge](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml/badge.svg?branch=main&event=push)](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml?query=branch%3Amain) (Development tools / Testing)
README
# cargo-mutants
[![Tests](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml/badge.svg?branch=main&event=push)](https://github.com/sourcefrog/cargo-mutants/actions/workflows/tests.yml?query=branch%3Amain)
[![crates.io](https://img.shields.io/crates/v/cargo-mutants.svg)](https://crates.io/crates/cargo-mutants)
[![libs.rs](https://img.shields.io/badge/libs.rs-cargo--mutants-blue)](https://lib.rs/crates/cargo-mutants)
[![GitHub Sponsors](https://img.shields.io/badge/Sponsor-%E2%9D%A4-%23db61a2.svg?&logo=github&logoColor=white&labelColor=181717&style=flat-square)](https://github.com/sponsors/sourcefrog)cargo-mutants helps you improve your
program's quality by finding places where bugs could be inserted without
causing any tests to fail.Coverage measurements can be helpful, but they really tell you what code is
_reached_ by a test, and not whether the test really _checks_ anything about the
behavior of the code. Mutation tests give different information, about whether
the tests really check the code's behavior.The goal of cargo-mutants is to be _easy_ to run on any Rust source tree, and
to tell you something _interesting_ about areas where bugs might be lurking or
the tests might be insufficient.**The main documentation is the user guide at .**
## Prerequisites
cargo-mutants can help on trees with non-flaky tests that run under `cargo test` or [`cargo nextest run`](https://nexte.st/).
## Install
```sh
cargo install --locked cargo-mutants
```You can also install using [cargo-binstall](https://github.com/cargo-bins/cargo-binstall) or from binaries attached to GitHub releases.
## Quick start
From within a Rust source directory, just run
```sh
cargo mutants
```To generate mutants in only one file:
```sh
cargo mutants -f src/something.rs
```## Integration with CI
The [manual includes instructions and examples for automatically testing mutants in CI](https://mutants.rs/ci.html), including incremental testing of pull requests and full testing of the development branch.
## Help advance cargo-mutants
If you use cargo-mutants or just like the idea you can help it get better:
* [Post an experience report in GitHub discussions](https://github.com/sourcefrog/cargo-mutants/discussions), saying whether it worked, failed, found interesting results, etc.
* [Sponsor development](https://github.com/sponsors/sourcefrog)## Project status
As of January 2024 this is an actively-maintained spare time project. I expect to make [releases](https://github.com/sourcefrog/cargo-mutants/releases) about every one or two months.
It's very usable at it is and there's room for lots more future improvement,
especially in adding new types of mutation.This software is provided as-is with no warranty of any kind.
## Further reading
See also:
* [cargo-mutants manual](https://mutants.rs/)
* [How cargo-mutants compares to other techniques and tools](https://github.com/sourcefrog/cargo-mutants/wiki/Compared).
* [Design notes](DESIGN.md)
* [Contributing](CONTRIBUTING.md)
* [Release notes](NEWS.md)
* [Discussions](https://github.com/sourcefrog/cargo-mutants/discussions)