You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Stryker counts a static mutant that breaks a module's import as survived #851
Stryker's vitest runner reports a static mutant that makes a module throw on import as survived. The runner keeps only the tests it collected, and a test file that fails to import collects none, so the mutant looks alive.
Seen while re-running the tool-profile scopes for #837 (PR #844): mutants such as DIRECTORY → "" or new SkillsCapability({}) are reported as survived. The same mutant applied by hand fails cursor.unit.test.ts outright, with SkillsCapability requires either prefix or directory. Five such survivors remain across tools-claude, tools-cursor and tools-copilot.
Expected
A mutant that stops a module from loading counts as killed. A test file that cannot be imported is a failing test, not an absent one.
Impact
It lowers a score and never inflates one, so no gate passes wrongly. But a scope can sit below the floor its tests deserve, and each false survivor in a report sends someone after a test gap that does not exist.
Activity
test(cli): prove on a real vitest run what Stryker collects for a fil…
chore(cli): count a test file that fails to load as a failed test in …
test(cli): raise the tool-profile mutation floors to the scores they …
test(cli): a canary mutation scope that fails if Stryker stops counti…