Configures Stryker.NET for mutation testing of .NET Core / .NET Framework projects - installs `dotnet-stryker` global tool, scopes mutation to specific csproj, supports xUnit / NUnit / MSTest, authors `stryker-config.json` with thresholds, runs in CI. Use when a .NET test suite needs mutation-quality verification - closes the .NET ecosystem gap left by Stryker.NET being newer than the JS variant.
80
100%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Full mutator set and configuration options for stryker-net-mutation. Linked
inline from that skill's SKILL.md, which keeps the conditional-boundary example
in the spine.
A surviving mutant means the test suite doesn't distinguish the original behavior from the mutated one. Common mutators:
| Mutator | Example |
|---|---|
| Arithmetic operator | + → -, * → / |
| Conditional boundary | < → <=, > → >= |
| Conditional negation | !x → x |
| Logical operator | && → || |
| Equality | == → != |
| Return value | return foo() → return null / return "" / return 0 |
| Statement removal | Foo(); → ; |
| String literal | "x" → "" |
mutation-level controls how many of these run:
Basic (fewest mutators)Standard (default, recommended)AdvancedComplete (most mutators; slowest)Per stryker-net-config, every option nests under a single stryker-config
root object; Stryker.NET publishes no JSON schema, so there is no $schema key.
Core keys: project, test-projects, mutation-level, thresholds (high /
low / break), concurrency, reporters. Command-line flags mirror them, for
example --solution (multi-project discovery), --project, --mutate (scope /
exclude files), and --break-at <baseline> for the CI gate.