Repository navigation
fix: the mutation report runs gremlins and Stryker the way each actually works - #163
Merged
Merged
Conversation
…lly works gremlins finds no mutants given ./..., and times every mutant out at its default coefficient; Stryker cannot find its vitest runner under pnpm, and has no flag for the JSON report's path. A tool that did not finish is now named in the comment instead of reading as every mutant caught.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The mutation report from #157 had not yet run against a real repository. Running both tools on identity showed four things wrong, and one that made a broken run look like a perfect one.
./..., gremlins v0.6.0 reports "No results to report" even when mutants exist on the changed lines. Given the module root.,--diffselects exactly the changed lines' mutants. Checked on identity with a one-line change: two mutants, both on that line.--timeout-coefficient 40(as grimoire uses) all six are killed and efficacy reads 100%. gremlins first gathers coverage over the whole module (about 10 minutes for identity), which fits the job's 30-minute tier.GOBINwhen mise sets one, so the workflow looks there first.--plugins @stryker-mutator/vitest-runner.reports/mutation/mutation.json, which the workflow now copies.--failed. The comment then says "Stryker did not finish, so its mutants are not listed: see the job log." and no longer claims every mutant was caught.Part of JorisJonkers-dev/workspace#128, for #155.
Checks
tests/test_mutation_report.py: 15 tests, 100% line and branch coverage. The new test covers a tool that did not finish.useLauncher.ts(survivors listed). gremlins with.and--diffselects the changed line's two mutants.