MuJava vs pytest-gremlins
MuJava
albany.edupytest-gremlins
github.comSide by side
| Figure | MuJava | pytest-gremlins |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | — |
| macOS | Yes | — |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Mutation Testing Tools | 8.4 (#3) | 7.7 (#10) |
| Installation | The documented setup uses two JAR files and a configuration file, and requires configuring Java CLASSPATH and PATH. | The project documents installation with pip, uv, and Poetry. |
| License | The project was released as open source under the Apache license in April 2015. | The project is MIT licensed. |
| Purpose | MuJava automatically generates mutants for Java programs for traditional method-level and class-level mutation testing. | pytest-gremlins is a pytest plugin that injects small code mutations and checks whether tests catch them. |
Plans
In their own words
MuJava
MuJava is a free, open-source tool for mutation testing of Java programs. It generates mutants for individual classes and packages, using 24 class-level operators as well as method-level operators, then runs tests against those mutants and evaluates mutation coverage. Tests must be JUnit test cases with public test classes and methods that call the classes under test; JUnit test suites are not supported. Equivalent mutants require manual identification, and the documentation says they typically make up 5% to 20% of mutants. Version 4 supports Java 1.6 language features, including generics, annotations, enumerations, varargs, enhanced for-each loops and static imports. Setup uses two JAR files and a configuration file, with Java CLASSPATH and PATH configuration. The documented workflow uses Java GUI applications; a command-line interface called muScript was released in March 2014, and an Eclipse plugin was created in 2007. The project is provided as-is, without guarantees of answers, repairs or improvements. It is available for Linux, macOS and Windows.
pytest-gremlins
pytest-gremlins is a pytest plugin for checking whether an existing test suite catches small changes to code. It runs mutation tests against Python projects and can report results in the console, HTML, or JSON, including multiple formats in one run. Getting started requires Python 3.11 or later, pytest 7.0 or later, and existing tests; installation is documented with pip, uv, and Poetry. The project’s quick-start command is `pytest --gremlins`. To manage execution, it uses mutation switching, coverage-guided test selection, incremental analysis, and parallel execution, and it works with pytest-xdist. Options can be set in `pyproject.toml` or with command-line flags, while inline pragmas can pardon specific mutations. A GitHub Action can run the checks and fail a workflow if its score misses a threshold; CI examples also cover GitLab CI, CircleCI, and Dagger. It is a free, MIT-licensed package for Linux, classified as Alpha. The guide warns that an initial run may take 10–100 times as long as a normal test run, though caching can shorten later runs. It also notes that equivalent mutations can make a perfect score unattainable and unnecessary.