Skip to content

Overview

Mutato is a mutation-testing engine for .NET. It breeds thousands of tiny, deliberate bugs — mutants — into your code, reruns your test suite against each one, and reports which mutants slipped past unnoticed.

A mutant that your tests still pass with is a survivor: a real gap in your suite, hiding behind a green checkmark. Line coverage tells you a line ran; Mutato tells you whether a test would actually notice if that line were wrong.

  • Type-aware mutants. Operators are chosen against Roslyn’s semantic model, so every mutant is a compilable, plausible bug — not type-invalid noise.
  • One compile, not one per mutant. A transparent csc wrapper weaves every mutant into a single instrumented assembly; the active mutant is selected by writing one static field.
  • Coverage-filtered, warm execution. A single coverage pass maps tests to mutants, then a pool of long-lived in-process hosts reruns only the covering tests — in parallel, with adaptive timeouts and crash respawn.
  • Actionable reports. A straight mutation score plus an HTML report that points at every survivor as an exact source diff, via the standard Stryker schema viewer.

Mutato is MTP-first and works with xUnit v3, TUnit, and the Microsoft Testing Platform.