🔎 Automated mutation testing for Swift 🕳️
This release introduces the first breaking change within Muter's configuration file schema.
What was previously called blacklist
is now called exclude
. This change was made to better reflect the intent of the option, which is to exclude files from the mutation testing that Muter performs.
What's new? In addition to the change to the configuration file called out above:
.swift
. Before this change, files that had .swift
anywhere in their file path would be considered for mutation testing.xcodebuild
. It dumps them into log files which you can find inside the temporary directory Muter generates for testing. A future version will be focused on making these files more discoverable.What's been fixed? There was a bug introduced in v4 that would cause pollution between mutation test passes, which would adversely affect mutation scoring. This issue has been resolved.
v4 includes a huge improvement to Muter's dependability, as well as some polishing of the commandline output.
Specifically, Muter will always copy your entire project into a temporary directory prior to performing any mutations on it, and will now refuse to perform any testing if it's unable to do so. Earlier versions of Muter would only copy a file prior to applying a mutation operator, and would then restore it after it had finished running your test suite. This ensures that Muter can never accidentally leave behind a mutant in your program should it be interrupted before it finishes a mutation test run.
Additionally, Muter now has a header it will always print out which contains a link to the issue tracker here on here on Github. I encourage you to post any issues or requests for help you may need while using Muter!
I want to give a shout out to @zeveisenberg as well for the pairing we did on this release.
v3 of Muter is a big release!
This is the first release to abandon semantic versioning. This is because every release of muter is considered to be important. Whether it be bug fixes, revisions, improvements, or new features, every release is major and should be adopted by a you.
This release adds:
This release completes the negate conditionals mutation introduced in v0.1.0
. Muter will invert conditional operators based on this table:
Original Operator | Negated Operator |
---|---|
== |
!= |
!= |
== |
>= |
<= |
<= |
>= |
> |
< |
< |
> |