Adopt Stryker.NET as a repo-local tool, for the mutation-testing spike
Pinned in dotnet-tools.json (dotnet-stryker 5.0.0) so any checkout reproduces it with `dotnet tool restore`. Reports land in StrykerOutput/, now ignored. Spike against FireControl.cs alone: 276 mutants in 7m18s, 208 killed, 67 survived, 4 uncovered, score 74.6%. It killed every mutation the hand-written anchor harnesses defended, compiles all mutants into one assembly and switches between them at runtime -- so it never edits a source file, has nothing to re-anchor after a refactor, and cannot leak a mutant into the tree. Among the survivors: Splash's handedness is untested (flipping the sign of `right` passes every test -- the operator's "damage on the wrong side of the ship"), deleting the discrete shield's TakeHit survives, and most of the rest trace to degenerate fixture values -- shooter at the origin, fire time zero, spread zero -- which make whole families of mutants arithmetically identical. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
b15cbbe5de
commit
8ef3b34c94
2 changed files with 16 additions and 0 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -109,3 +109,6 @@ tests/_scratch_*
|
|||
.nuget-sandbox/
|
||||
.dotnet-sandbox/
|
||||
.appdata-sandbox/
|
||||
|
||||
# Stryker.NET mutation reports (regenerated per run)
|
||||
StrykerOutput/
|
||||
|
|
|
|||
13
dotnet-tools.json
Normal file
13
dotnet-tools.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"version": 1,
|
||||
"isRoot": true,
|
||||
"tools": {
|
||||
"dotnet-stryker": {
|
||||
"version": "5.0.0",
|
||||
"commands": [
|
||||
"dotnet-stryker"
|
||||
],
|
||||
"rollForward": false
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue