{"id":13801480,"url":"https://github.com/stryker-mutator/stryker4s","last_synced_at":"2025-04-05T22:07:37.020Z","repository":{"id":33538655,"uuid":"138042318","full_name":"stryker-mutator/stryker4s","owner":"stryker-mutator","description":"Mutation testing for Scala","archived":false,"fork":false,"pushed_at":"2024-04-13T22:19:36.000Z","size":2994,"stargazers_count":193,"open_issues_count":33,"forks_count":36,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-04-14T12:23:46.127Z","etag":null,"topics":["cats-effect","hacktoberfest","mutation-testing","sbt","sbt-plugin","scala","stryker","test-automation","testing","testing-tools","unit-testing"],"latest_commit_sha":null,"homepage":"https://stryker-mutator.io","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stryker-mutator.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-06-20T14:14:40.000Z","updated_at":"2024-04-15T16:07:44.137Z","dependencies_parsed_at":"2023-02-14T12:15:40.256Z","dependency_job_id":"2415e90b-fd73-455a-9ebe-111184e4c08d","html_url":"https://github.com/stryker-mutator/stryker4s","commit_stats":{"total_commits":1386,"total_committers":37,"mean_commits":37.45945945945946,"dds":0.4797979797979798,"last_synced_commit":"a8c5b728c32eca893dc94afafd8777a71cbbde65"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stryker-mutator%2Fstryker4s","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stryker-mutator%2Fstryker4s/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stryker-mutator%2Fstryker4s/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stryker-mutator%2Fstryker4s/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stryker-mutator","download_url":"https://codeload.github.com/stryker-mutator/stryker4s/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406089,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cats-effect","hacktoberfest","mutation-testing","sbt","sbt-plugin","scala","stryker","test-automation","testing","testing-tools","unit-testing"],"created_at":"2024-08-04T00:01:23.280Z","updated_at":"2025-04-05T22:07:36.983Z","avatar_url":"https://github.com/stryker-mutator.png","language":"Scala","funding_links":[],"categories":["Table of Contents","Testing"],"sub_categories":["Testing"],"readme":"[![Maven Central](https://img.shields.io/maven-central/v/io.stryker-mutator/stryker4s-core_2.12.svg?label=Maven%20Central\u0026colorB=brightgreen)](https://search.maven.org/search?q=g:io.stryker-mutator)\n[![Build status](https://github.com/stryker-mutator/stryker4s/workflows/CI/badge.svg)](https://github.com/stryker-mutator/stryker4s/actions)\n[![Mutation testing badge](https://img.shields.io/endpoint?style=flat\u0026url=https%3A%2F%2Fbadge-api.stryker-mutator.io%2Fgithub.com%2Fstryker-mutator%2Fstryker4s%2Fmaster)](https://dashboard.stryker-mutator.io/reports/github.com/stryker-mutator/stryker4s/master)\n[![Slack Chat](https://img.shields.io/badge/slack-chat-brightgreen.svg?logo=slack)](https://join.slack.com/t/stryker-mutator/shared_invite/enQtOTUyMTYyNTg1NDQ0LTU4ODNmZDlmN2I3MmEyMTVhYjZlYmJkOThlNTY3NTM1M2QxYmM5YTM3ODQxYmJjY2YyYzllM2RkMmM1NjNjZjM)\n\n![stryker-80x80](https://user-images.githubusercontent.com/10114577/59962899-d26b8d00-94eb-11e9-8e31-18b3d8d96fd3.png)\n\n# Stryker4s\n\n_Professor X: For someone who hates mutants... you certainly keep some strange company._  \n_William Stryker: Oh, they serve their purpose... as long as they can be controlled._\n\n## Introduction\n\nFor an introduction to mutation testing and Stryker's features, see [stryker-mutator.io](https://stryker-mutator.io/). Looking for mutation testing in [JavaScript](https://github.com/stryker-mutator/stryker) or [.NET](https://github.com/stryker-mutator/stryker-net)?\n\n## Getting Started\n\nFor the quickstart, see [our website's quickstart](https://stryker-mutator.io/stryker4s/quickstart).\n\nStryker4s is a mutation testing framework for Scala. It allows you to test your tests by temporarily inserting bugs. Depending on your project setup, there are multiple ways to get started with Stryker4s.\n\n## Sbt plugin\n\nStryker4s provides a sbt plugin for easy use within sbt projects. To install the plugin, add the following line to `plugins.sbt` [![Maven Central](https://img.shields.io/maven-central/v/io.stryker-mutator/stryker4s-core_2.12.svg?label=Maven%20Central\u0026colorB=brightgreen)](https://search.maven.org/artifact/io.stryker-mutator/sbt-stryker4s):\n\n```scala\naddSbtPlugin(\"io.stryker-mutator\" % \"sbt-stryker4s\" % stryker4sVersion)\n```\n\nAfter adding the plugin, Stryker4s can be used by running `sbt stryker` in the root of your project.\n\n### Multi-module projects\n\nMulti-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](https://stryker-mutator.io/docs/stryker4s/configuration#base-dir-string). Then you can run `sbt \"project yourSubmoduleNameHere\" stryker` to set the active project and run Stryker4s.\n\n## Maven plugin\n\nThe Maven plugin can be added as follows in `pom.xml` under `\u003cplugins\u003e` [![Maven Central](https://img.shields.io/maven-central/v/io.stryker-mutator/stryker4s-core_2.12.svg?label=Maven%20Central\u0026colorB=brightgreen)](https://search.maven.org/artifact/io.stryker-mutator/stryker4s-maven-plugin):\n\n```xml\n\u003cplugin\u003e\n    \u003cgroupId\u003eio.stryker-mutator\u003c/groupId\u003e\n    \u003cartifactId\u003estryker4s-maven-plugin\u003c/artifactId\u003e\n    \u003cversion\u003e${stryker4s.version}\u003c/version\u003e\n\u003c/plugin\u003e\n```\n\nYou can then run Stryker4s with the command `mvn stryker4s:run`. Note that this is different than the command for the sbt plugin.\n\n## Pre-release versions\n\nWe also publish SNAPSHOT versions of each commit on master. To use a pre-release, add the following setting to your `build.sbt` and `plugins.sbt`:\n\n```scala\nresolvers ++= Resolver.sonatypeOssRepos(\"snapshots\")\n```\n\nThen replace the Stryker4s version with this version: [![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/https/oss.sonatype.org/io.stryker-mutator/stryker4s-core_2.12.svg)](https://oss.sonatype.org/content/repositories/snapshots/io/stryker-mutator/).\n\n## Configuration\n\nSee the [configuration page](https://stryker-mutator.io/docs/stryker4s/configuration) for all the configuration options available in Stryker4s.\n\n## Supported mutators\n\nStryker4s supports a variety of mutators, which can be found [here](https://stryker-mutator.io/docs/mutation-testing-elements/supported-mutators/).\nDo you have a suggestion for a (new) mutator? Feel free to create an [issue](https://github.com/stryker-mutator/stryker4s/issues/new)!\n\nAn always up-to-date reference is also available in the [MutantMatcher source](core/src/main/scala/stryker4s/mutants/findmutants/MutantMatcher.scala).\n\n## Changelog\n\nSee the [releases page](https://github.com/stryker-mutator/stryker4s/releases) for all the latest changes made.\n\n## Contributing\n\nWant to contribute? That's great! Please have a look at our [contributing guide](https://stryker-mutator.io/docs/stryker4s/contributing).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstryker-mutator%2Fstryker4s","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstryker-mutator%2Fstryker4s","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstryker-mutator%2Fstryker4s/lists"}