CheckOps
Stryker.NET
Stryker.NET is the Apache-2.0 mutation testing tool for C# and .NET from the Stryker Mutator project, run as the dotnet-stryker global tool with HTML reports, a dashboard and incremental runs.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Stryker.NET brings mutation testing to C#. It is part of the Stryker Mutator family alongside StrykerJS and Stryker4s. It changes your code in small ways (mutants), such as flipping comparison operators, removing statements or altering LINQ methods and string values, and runs your tests against each mutant. Surviving mutants show where tests execute code without really checking it.
You install it as a .NET tool (dotnet tool install -g dotnet-stryker) and run dotnet stryker in a test project folder. It works with xUnit, NUnit and MSTest via VSTest, produces an interactive HTML report, and can publish results to the Stryker Dashboard. Options include mutation levels, thresholds that fail the build, filtering files and mutators, and since/baseline modes that mutate only code changed relative to a git branch, which keeps pull request runs fast. Configuration lives in stryker-config.json. dotnet-stryker 5.1.0 was released on 10 November 2026.
The source code is at stryker-mutator/stryker-net on GitHub under the Apache-2.0 licence, with about 2,100 stars; the most recent commit was on 11 November 2026.
Features
- C# mutation testing: Measures test effectiveness beyond coverage.
- HTML report and dashboard: Explore surviving mutants visually.
- Incremental runs:
--sinceand baseline modes for changed code. - Thresholds: Fail CI when mutation score drops.
Pros
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 11 November 2026.
Cons
- Runtime cost: Large solutions take time; use incremental modes.
- C# focus: F# and VB.NET are not the main target.
Usage and Links (Example)
dotnet tool install -g dotnet-stryker
cd tests/Shop.Tests
dotnet stryker
dotnet stryker --since:main --threshold-break 60
stryker-config.json:
{ "stryker-config": { "reporters": ["html", "progress"], "thresholds": { "high": 80, "low": 60, "break": 50 } } }
Resources:
Pricing
Stryker.NET is free and open source under the Apache-2.0 licence.
Recommended for?
- .NET teams with solid coverage wanting to measure test quality.
- Pull request pipelines using
--sincefor fast incremental runs.
Conclusion
Stryker.NET is the leading mutation testing tool for C#, practical for CI thanks to incremental runs and clear reports.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Stryker.NET side by side.
SStrykerJSStrykerJS is the Apache-2.0 mutation testing framework for JavaScript and TypeScript, part of the Stryker Mutator family (with Stryker.NET and Stryker4s), supporting Jest, Vitest, Mocha, Karma and more.Compare with Stryker.NET
PPIT (Pitest)PIT (Pitest) is an Apache-2.0 state-of-the-art mutation testing system for Java and the JVM that mutates bytecode to measure how well your tests detect faults, with Maven and Gradle plugins and HTML reports.Compare with Stryker.NET
IInfectionInfection is a BSD-3-Clause AST-based mutation testing framework for PHP that measures test effectiveness with Mutation Score Indicator metrics, supporting PHPUnit, Pest, Codeception and phpspec.Compare with Stryker.NET
XxUnit.netxUnit.net is a free, Apache-2.0, community-focused unit testing tool for C#, F# and Visual Basic, part of the .NET Foundation; v3 supports .NET 8+ and .NET Framework 4.7.2+.Compare with Stryker.NET
NNUnitNUnit is an MIT-licensed unit-testing framework for all .NET languages on Windows, macOS and Linux, broad and non-opinionated, now at version 5 after NUnit 3 and 4.Compare with Stryker.NET
CCoverletCoverlet is an MIT-licensed cross-platform code coverage framework for .NET, with line, branch and method coverage, available as a VSTest collector, MSBuild integration or global tool.Compare with Stryker.NET