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 strait up CLI api.
In this example you can see how to use both.
async function main() {
new StrykerCli(process.argv ).run();
const stryker = new Stryker({ concurrency: 4 } );
const mutantResults = await stryker.runMutationTest();
}
Stryker is written in TypeScript, so it is recommended to use Stryker as well to get the best developer experience.