1. @stryker-mutator/core
The extendable JavaScript mutation testing framework
@stryker-mutator/core
Package: @stryker-mutator/core
Created by: stryker-mutator
Last modified: Sun, 25 Feb 2024 16:07:52 GMT
Version: 8.2.6
License: Apache-2.0
Downloads: 320,847
Repository: https://github.com/stryker-mutator/stryker-js

Install

npm install @stryker-mutator/core
yarn add @stryker-mutator/core

Mutation testing badge
Build Status
NPM
Node version
Slack Chat

StrykerJS

StrykerJS

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 StrykerJS features, see stryker-mutator.io.

Getting started

Please follow the quickstart on the website.

For small js projects, you can try the following command:

npm install --save-dev @stryker-mutator/core
# Only for small projects:
npx stryker run

It will run stryker with default values:

  • Uses npm test as your test command
  • Searches for files to mutate in the lib and src directories

Usage

 $ npx stryker <command> [options] [configFile]

See usage on stryker-mutator.io

Supported mutators

See our website for the list of currently supported mutators.

Configuration

See configuration on stryker-mutator.io.

Programmatic use

Stryker can also be used programmatically from nodejs. It exports 2 classes for you to use: Stryker and StrykerCli.

 import { Stryker, StrykerCli } from '@stryker-mutator/core';

Both classes can be used to run Stryker. The main difference is that Stryker is a slightly more low-level approach, while StrykerCli is the straight up CLI api.

In this example you can see how to use both.

 async function main() {
  // Runs Stryker as if it was called directly from the cli. Not even returns a promise, it assumes to be allowed to call `process.exit`.
  new StrykerCli(process.argv /* RAW argv array */ ).run(); 

  // Runs Stryker, will not assume to be allowed to exit the process.
  const stryker = new Stryker({ concurrency: 4 } /* Partial Stryker options object */ );
  const mutantResults = await stryker.runMutationTest();
  // mutantResults or rejected with an error.
}

Stryker is written in TypeScript, so it is recommended to use Typescript as well to get the best developer experience.

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code