Skip to content
SPECIFICTION
Get listed

Infection vs pytest-gremlins

Infection

infection.github.io

pytest-gremlins

github.com

Side by side

FigureInfectionpytest-gremlins
Price from—Free
Free plan—Yes
Free trial——
Open source——
WebYes—
macOSYes—
LinuxYesYes
Plans published01
Spec score · Mutation Testing Tools7.6 (#11)7.7 (#10)
InstallationThe maker documents PHAR, Phive, Composer, Git, and Homebrew installation methods.The project documents installation with pip, uv, and Poetry.
LicenseThe project is released under the BSD-3-Clause License.The project is MIT licensed.
PurposeInfection mutates PHP source code and reports changes that a test suite fails to catch.pytest-gremlins is a pytest plugin that injects small code mutations and checks whether tests catch them.

Plans

Infection

No plans published.

Infection pricing →

pytest-gremlins

  • pytest-gremlinsFree

pytest-gremlins pricing →

In their own words

Infection

Infection is a PHP mutation-testing library that shows which changes a test suite fails to detect. It creates mutants using predefined operators, runs tests against changed code, and records killed and escaped mutants, errors, and timeouts. Its Mutation Score Indicator measures the share of generated mutations detected by tests; it also reports Mutation Code Coverage and Covered Code Mutation Score Indicator. Infection supports PHPUnit, PhpSpec, Codeception, and Testo, and runs from the command line at a project root. Teams can run mutated tests in parallel, focus analysis on touched lines or files, and set minimum mutation-score thresholds that fail a build. The homepage describes more than 100 mutators grouped into profiles and allows custom mutators. Optional PHPStan and Mago integrations can help catch escaped mutants involving type violations, dead code, and unreachable paths. Installation options include PHAR, Phive, Composer, Git, and Homebrew. A browser playground supports trying PHP code and tests without installing the tools. Infection is free under the BSD-3-Clause license and requires PHP 8.3 or newer plus Xdebug, phpdbg, or pcov.

Visit infection.github.io

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.

Visit github.com