Muter Versions Save

🔎 Automated mutation testing for Swift 🕳️

v5

5 years ago

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:

  • In the event that Muter discovers no changes it can apply to your codebase, it will stop early and display some suggestions of what to do.
  • Muter's source file discovery is now stricter, and will ignore files that do not end in .swift. Before this change, files that had .swift anywhere in their file path would be considered for mutation testing.
  • Muter now displays what version you're running in its header whenever you invoke it from the command line.
  • Muter now swallows all of the logs from 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

5 years ago

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

5 years ago

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:

  • A new mutation operator - Remove Side Effects. This operator will delete code that appears to be causing a side effect in your application. Read more about it on the operators list page.
  • Mutation scores for every file Muter is able to apply a mutation operator onto. This gives you greater insight into how your test suite responds to changes in certain parts of your code base, down to the file level.
  • An improved test report output - Muter now displays all of this information in a set of tables at the end of a run. In addition to the mutation score for a file, it reports every operator it applied to a file along with how it impacted your test suite.

v0.2.0

5 years ago

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
== !=
!= ==
>= <=
<= >=
> <
< >