Skip to main content

TypeScript Checker

A TypeScript type checker plugin for Stryker, the JavaScript TypeScript Mutation testing framework. This plugin enables type checking on mutants, so you won't have to waste time on mutants which result in a type error.

Features#

๐Ÿ‘ฝ Type check each mutant. Invalid mutants will be marked as CompileError in your Stryker report.
๐Ÿง’ Easy to setup, only your tsconfig.json file is needed.
๐Ÿ”ข Type check is done in-memory, no side effects on disk.
๐ŸŽ Support for both single typescript projects as well as projects with project references (--build mode).

Install#

First, install Stryker itself (you can follow the getting started)

Next, install this package:

npm install --save-dev @stryker-mutator/typescript-checker

Configuring#

You can configure the typescript checker in the stryker.conf.js (or stryker.conf.json) file.

{
"checkers": ["typescript"],
"tsconfigFile": "tsconfig.json"
}

tsconfigFile [string]#

Default: 'tsconfig.json'

The path to your tsconfig. Project references are supported, --build mode will be enabled automatically when references are found in your tsconfig.json file.

Note: the following compiler options are always overridden by @stryker-mutator/typescript-checker to avoid false positives. See issue 391 for more information on this

{
"compilerOptions": {
"allowUnreachableCode": true,
"noUnusedLocals": false,
"noUnusedParameters": false
}
}

Peer dependencies#

The @stryker-mutator/typescript-checker package for stryker to enable typescript support. As such, you should make sure you have the correct versions of its dependencies installed:

  • typescript
  • @stryker-mutator/core

For the current versions, see the peerDependencies section in the package.json.

Load the plugin#

In this plugin the @stryker-mutator/typescript-checker' must be loaded into Stryker. The easiest way to achieve this, is not have a plugins section in your config file. That way, all plugins starting with "@stryker-mutator/" will be loaded.

If you do decide to choose specific modules, don't forget to add "@stryker-mutator/typescript-checker" to the list of plugins to load.