Skip to content

Releases: stryker-mutator/stryker4s

Stryker4s v0.3.1

29 Mar 17:22
Compare
Choose a tag to compare

We just released Stryker4s version 0.3.1! This release provides two new big features! A Maven plugin, and a fancy new HTML reporter. A number of smaller (but also important) are also included.

Maven plugin (#151)

Similar to the sbt plugin, the Maven plugin allows you to easily mutation test your Maven Scala project. Add Stryker4s to your project by adding the following lines to your pom.xml:

<plugin>
    <groupId>io.stryker-mutator</groupId>
    <artifactId>stryker4s-maven-plugin</artifactId>
    <version>0.3.1</version>
</plugin>

You can then run Stryker4s with the command mvn stryker4s:run. Note that this is different than the command for the sbt plugin.

HTML reporter (#176)

You can now output your mutation test report to a nicely readable HTML report. You can enable the report by enabling it in your stryker4s.conf:

reporters: [ "console", "html" ]

After completing a mutation run, a report will be written to target/stryker4s-report-$timestamp/index.html. See the mutation-testing-elements repo for more information.

Changes in logging configuration (#150)

We have also changed the configuration for setting a log level. This is now dependant on what plugin you use to run Stryker4s:

  • sbt plugin:
    • Add logLevel in stryker := Level.Debug in your build.sbt or via the command-line.
    • Options: Debug, Info, Warn, Error
  • Commandrunner:
    • Pass the loglevel as a parameter when running, like so: --debug.
    • Options: --off, --error, --warn, --info, --debug, --trace, --all (not case sensitive)
  • Maven plugin:
    • As a command-line property, like so: mvn -Dorg.slf4j.simpleLogger.defaultLogLevel=warn stryker4s:run.
    • Options: trace, debug, info, warn, or error

Note that the log-level property in stryker4s.conf is no longer used. We plan to add a deprecation warning in the future.

New mutators

The following new mutators are introduced:

  • If statement mutator (#157)
  • takeRight, dropRight, takeWhile, dropWhile mutators (#155)

Bugfixes

  • Update to Scalameta 4.1.5 (#170)
  • Fix topstatement for ! and literals (#163)

Other changes

  • Add vscode settings and suggested extensions (#171)
  • Refactor reporters and log detected mutants (#158)
  • Refactor Mutant and MutantRunner (#154)
  • Verify code formatting with Travis (#146)

Stryker4s v0.2.1

01 Feb 17:45
Compare
Choose a tag to compare

We just released Stryker4s v0.2.1! This marks our second release thusfar. It's mostly focused on fixing bugs, providing a stable environment and supporting more types of projects. Give it a try by adding the sbt plugin to your project:

addSbtPlugin("io.stryker-mutator" % "sbt-stryker4s" % "0.2.1")

Features

  • Our releases are now automated by sbt-ci-release. We'll also be releasing more often (#131).
    • Every commit that is merged into master will now become a SNAPSHOT release. Check out the documentation for more info.
  • A warning is now logged when Stryker4s is ran with the default JVM memory settings. Mutation testing is a taxing process, and increasing the memory can halt the process to a grind (#139).
  • Logging is improved for when no mutations are found (#140).

Bug fixes

  • We've fixed some bugs related to generating mutated code. If you ran into problems with the previous release, please try again (#126, #130, #147)!
  • Fixed a bug bug where files that were deleted, but not yet staged on git would throw a FileNotFoundException was fixed (#134).
  • The sbt plugin now properly copies over any JVM system properties that are set (#136).

Other changes

  • The submodules have been re-organized. This means stryker4s-util is removed, and most plugins/runners only depend on stryker4s-core now. The command-runner is now also in a separate package (#128).
    • A nice side-effect of this is that the command-runner is now easily runnable via Coursier. Simply run coursier launch --scaladex stryker4s-command-runner to start mutation testing a project that does yet have a plugin!
  • We now test against multiple JDK's on Travis. This should help us catch any future compatibility problems with different JVM's (#129).
  • The sbt plugin has had a slight refactoring to clean it up and only apply some settings once (#138).
  • Some documentation was added detailing our versioning strategy (#107).
  • Generated mutated code is now slightly cleaner (#144).

v0.1.0

21 Dec 14:27
Compare
Choose a tag to compare

This is the first official release of Stryker4s 🎉! Only the more substantial features will be described here.

Features

  • Sbt support using a plugin. Add the plugin to your project with addSbtPlugin("io.stryker-mutator" % "sbt-stryker4s" % "0.1.0")
  • Able to configure Stryker4s using the stryker4s.conf. For more information see configuration
  • Basic mutators, a list of all available mutators can be found here
  • Console reporter