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.
Adds a
--iterate
option that will skip mutants that passed in a previous run. The idea is that if you are adding tests that, presumably, only improve coverage, you can easily find out if you've now fixed every previous gap.Fixes #53
This will only be stable if you're using the same filter options (
--file
) etc on consecutive runs.Fuzzy matching?
There is a question whether it's better to match the line and column numbers, or better to consider mutants as matched even if they've moved a bit. It's easy to imagine that in the process of improving coverage, some code would move around a bit and ideally we'd detect that it moved but did not change. On the other hand, ignoring the line and column is likely to be ambiguous when there are similarly-named mutants within the same file or function, which might cause some things to be skipped incorrectly.
The process of catching mutants is probably often about adding more test coverage. Since that occurs typically in either integration test files or in unit tests at the bottom of files, it typically shouldn't cause code to move? If the code under test needs to be changed to improve coverage, perhaps it's better to re-test it. So, overall, I think I won't do any fuzzy matching at this point.
TODO
--iterate
command-line option (it would not make sense to have in the config.)caught.txt
andpreviously_caught.txt
before creating the new output directory.previously_caught.txt
in the new output directory.mutants.out
.--list
excludes previously-caught mutants, but does not update the files.previously_caught.txt
without--iterate
.