A polyglot incremental mutation tester.
Warning
Pre-Alpha software, highly likely to change and no guarantee of correctness as of yet
- Incremental — mutation testing can take a long time. Bough stores all results to disk, so you can stop a run midway through and resume later. Check your mutation state into git and share coverage data across your team.
- Polyglot — built on tree-sitter, so adding new languages reuses most of the mutation testing machinery.
- Config, not plugins — no plugin ecosystem to navigate. A single config file controls everything: file globs, test commands, skip patterns via tree-sitter queries.
cargo install --locked --git https://github.com/CodeEnPlace/bough --bin boughCreate a bough.config.toml in your project root:
base_root_dir = "."
include = ["**/*"]
exclude = []
init.cmd = "npm install"
test.cmd = "npm run test"
[lang.js]
include = ["src/**/*.js"]
exclude = ["**/*.test.*"]Then run:
bough show mutations # see what bough will mutate
bough run # run mutation testing
bough find # find the most important missed mutationsSee the tutorial for a full walkthrough.
| Language | ID |
|---|---|
| JavaScript | js |
| TypeScript | ts |
| Python | py |
| Rust | rs |
| Go | go |
| C | c |
| Java | java |
| C# | cs |
Is your language not supported? Open an issue or PR on GitHub.
MIT