Skip to content

ISEP-Stryker/stryker4jvm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Maven Central Build status Mutation testing badge Slack Chat

stryker-80x80

Stryker4jvm

Professor X: For someone who hates mutants... you certainly keep some strange company.
William Stryker: Oh, they serve their purpose... as long as they can be controlled.

Introduction

For an introduction to mutation testing and Stryker's features, see stryker-mutator.io. Looking for mutation testing in JavaScript or .NET?

Getting Started

For the quickstart, see our quickstart. See our sample projects for examples on how to add stryker to your project.

Stryker4jvm is a mutation testing framework for jvm-languages, currently supporting Scala and Kotlin. It allows you to test your tests by temporarily inserting bugs.

Depending on your project setup, there are multiple ways to get started with Stryker4jvm.

Sbt plugin

Stryker4jvm provides a sbt plugin for easy use within sbt projects. To install the plugin, add the following line to plugins.sbt Maven Central:

addSbtPlugin("io.stryker-mutator" % "sbt-stryker4jvm" % stryker4jvmVersion)

After adding the plugin, Stryker4jvm can be used by running sbt stryker in the root of your project.

Multi-module projects

Multi-module projects are not yet fully supported. However, there is a workaround you can use while we work on a better solution. Set the base-directory to the correct directory of the submodule with the base-dir configuration setting. Then you can run sbt "project yourSubmoduleNameHere" stryker to set the active project and run Stryker.

Maven plugin

The Maven plugin can be added as follows in pom.xml under <plugins>

<plugin>
    <groupId>io.stryker-mutator</groupId>
    <artifactId>stryker4jvm-plugin-maven</artifactId>
    <version>${stryker4jvm.version}</version>
</plugin>

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

Pre-release versions

We also publish SNAPSHOT versions of each commit on master. To use a pre-release, add the following setting to your plugins.sbt:

resolvers += Resolver.sonatypeRepo("snapshots")

Configuration

See the configuration page for setting up your stryker4jvm.conf file (optional).

Supported mutators

Stryker4jvm supports different mutators depending on the language it is being run on.

For Scala the mutators can be found here. Do you have a suggestion for a (new) mutator? Feel free to create an issue!

An always up-to-date reference is also available in the MutantMatcher source.

Changelog

See the releases page for all the latest changes made.

Contributing

Want to contribute? That's great! Please have a look at our contributing guide.

Releases

No releases published

Packages

No packages published

Languages

  • Scala 85.1%
  • Kotlin 8.8%
  • Java 5.9%
  • Other 0.2%