Package detail

stryker

stryker-mutator5.3kApache-2.0deprecated0.35.1

Stryker v1 is released, but you're still using a 0.x version. This version is no longer maintained. Please use @stryker-mutator/core. See https://stryker-mutator.io/blog/2019-02-13/announcing-stryker-1-0 for the full migration guide.

The extendable JavaScript mutation testing framework

mutation testing, mutation, testing, test

readme

Build Status NPM Node version Gitter BCH compliance

Stryker

Stryker

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.

Getting started

Please follow the quickstart on the website.

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

npm install --save-dev stryker stryker-api
# 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] [stryker.conf.js]

The main command for Stryker is run, which kicks off mutation testing.

Although Stryker can run without any configuration, it is recommended to configure it when you can, as it can greatly improve performance of the mutation testing process. By default, Stryker will look for a stryker.conf.js file in the current working directory (if it exists). This can be overridden by specifying a different file as the last parameter.

Before your first run, we recommend you try the init command, which helps you to set up this stryker.conf.js file and install any missing packages needed for your specific configuration. We recommend you verify the contents of the configuration file after this initialization, to make sure everything is setup correctly. Of course, you can still make changes to it, before you run Stryker for the first time.

The following is an example stryker.conf.js file. It specifies running mocha tests with the mocha test runner.

module.exports = function(config){
  config.set({
    mutate: [
      'src/**/*.js',
      '!src/index.js'
    ],
    testFramework: 'mocha',
    testRunner: 'mocha',
    reporters: ['progress', 'clear-text', 'html'],
    coverageAnalysis: 'perTest'
  });
}

As you can see, the config file is not a simple JSON file. It should be a node module. You might recognize this way of working from the karma test runner.

Make sure you at least specify the testRunner options when mixing the config file and/or command line options.

Command-line interface

Stryker can also be installed, configured and run using the Stryker-CLI. If you plan on using Stryker in more projects, the Stryker-CLI is the easiest way to install, configure and run Stryker for your project.

You can install the Stryker-CLI using:

$ npm install -g stryker-cli

The Stryker-CLI works by passing received commands to your local Stryker installation. If you don't have Stryker installed yet, the Stryker-CLI will help you with your Stryker installation. This method allows us to provide additional commands with updates of Stryker itself.

Supported mutators

See our website for the list of currently supported mutators.

Configuration

All configuration options can either be set via the command line or via the stryker.conf.js config file.

files and mutate both support globbing expressions using node glob. This is the same globbing format you might know from Grunt or Karma.

You can ignore files by adding an exclamation mark (!) at the start of an expression.

mutate [string[]]

Default: ['{src,lib}/**/*.js?(x)', '!{src,lib}/**/__tests__/**/*.js?(x)', '!{src,lib}/**/?(*.)+(spec|test).js?(x)', '!{src,lib}/**/*+(Spec|Test).js?(x)']
Command line: [--mutate|-m] src/**/*.js,a.js
Config file: mutate: ['src/**/*.js', 'a.js']

With mutate you configure the subset of files to use for mutation testing. Generally speaking, these should be your own source files.
This is optional, as you can choose to not mutate any files at all and perform a dry-run (running only your tests without mutating).

testRunner [string]

Default: 'command'
Command line: --testRunner karma
Config file: testRunner: 'karma'

With testRunner you specify the test runner that Stryker uses to run your tests. The default value is command. The command runner runs a configurable bash/cmd command and bases the result on the exit code of that program (0 for success, otherwise failed). You can configure this command via the config file using the commandRunner: { command: 'npm run mocha' }. It uses npm test as the command by default.

The command test runner can be made to work in any use case, but comes with a performance penalty, as Stryker cannot do any optimizations and just runs all tests for all mutants. If possible, you should try to use one of the test runner plugins that hook into your test runner of choice. For example: install and use the stryker-karma-runner to use karma as a test runner. See the list of plugins for an up-to-date list of supported test runners and plugins.

testFramework [string]

Default: none
Command line: --testFramework jasmine
Config file: testFramework: 'jasmine'

Configure which test framework you are using. This option is not mandatory, as Stryker is test framework agnostic (it doesn't care what framework you use), However, it is required when coverageAnalysis is set to 'perTest', because Stryker needs to hook into the test framework in order to measure code coverage results per test and filter tests to run.

Make sure the a plugin is installed for your chosen test framework. E.g. install stryker-mocha-framework to use 'mocha' as a test framework.

coverageAnalysis [string]

Default: off
Command line: --coverageAnalysis perTest
Config file: coverageAnalysis: 'perTest'

With coverageAnalysis you specify which coverage analysis strategy you want to use.

Stryker can analyse code coverage results. This can potentially speed up mutation testing a lot, as only the tests covering a particular mutation are tested for each mutant. This does not influence the resulting mutation testing score. It only improves performance, so we enable it by default.

The possible values are:

  • off: Stryker will not determine the code covered by tests during the initial test run phase. All tests will be executed for each mutant during the mutation testing phase.

  • all: Stryker will determine the code covered by all tests during the initial test run phase. Only mutants actually covered by your test suite are tested during the mutation testing phase. This setting requires your test runner to be able to report the code coverage back to Stryker. Currently, only the stryker-mocha-runner and the stryker-karma-runner do this.

  • perTest: Stryker will determine the code covered by your test per executed test during the initial test run phase. Only mutants actually covered by your test suite are tested during the mutation testing phase. Only the tests that cover a particular mutant are tested for each one. This requires your tests to be able to run independently of each other and in random order. In addition to requiring your test runner to be able to report the code coverage back to Stryker, your chosen testFramework also needs to support running code before and after each test, as well as test filtering.
    Currently, stryker-mocha-runner as well as stryker-karma-runner support this. However, stryker-karma-runner support is limited to using it with Jasmine as the test framework (Mocha is not yet supported).

mutator [object | string]

Default: es5
Command line: --mutator es5
Config file: mutator: 'es5' or mutator: { name: 'es5', excludedMutations: ['BooleanSubstitution', 'StringLiteral'] }

With mutator you configure which mutator plugin you want to use, and optionally, which mutation types to exclude from the test run.
The mutator plugin name defaults to es5 if not specified. The list of excluded mutation types defaults to an empty array, meaning all mutation types will be included in the test.
The full list of mutation types varies slightly between mutators (for example, the es5 mutator will not use the same mutation types as the typescript mutator). Mutation type names are case-sensitive, and can be found either in the source code or in a generated Stryker report.

When using the command line, only the mutator name as a string may be provided.
When using the config file, you can provide either a string representing the mutator name, or a MutatorDescriptor object, like so:

  • MutatorDescriptor object: { name: 'name', excludedMutations: ['mutationType1', 'mutationType2', ...] }:
    • The name property is mandatory and contains the name of the mutator plugin to use.
    • The excludedMutations property is mandatory and contains the types of mutations to exclude from the test run.

transpilers [string[]]

Default: []

With transpilers you configure which transpiler plugins should transpile the code before it's executed. This is an array where the transpilers are called in the other of the array. This defaults to an empty array meaning no transpilation will be done.

reporters [string[]]

Default: ['clear-text', 'progress']
Command line: --reporters clear-text,progress,dots,dashboard
Config file: reporters: ['clear-text', 'progress', 'dots', 'dashboard']

With reporters you can set the reporters for stryker to use. These reporters can be used out of the box: clear-text, progress, dots, dashboard and event-recorder. By default clear-text and progress are active if no reporters are configured. You can load additional plugins to get more reporters. See stryker-mutator.io for an up-to-date list of supported reporter plugins and a description on each reporter.

The clear-text reporter supports three additional config options:

  • allowColor to use cyan and yellow in printing source file names and positions. This defaults to true, so specify as clearTextReporter: { allowColor: false }, to disable if you must.
  • logTests to log the names of unit tests that were run to allow mutants. By default, only the first three are logged. The config for your config file is: clearTextReporter: { logTests: true },
  • maxTestsToLog to show more tests that were executed to kill a mutant when logTests is true. The config for your config file is: clearTextReporter: { logTests: true, maxTestsToLog: 7 },

The dashboard reporter is a special kind of reporter. It sends a report to https://dashboard.stryker-mutator.io, enabling you to add a fancy mutation score badge to your readme! To make sure no unwanted results are sent to the dashboards, it will only send the report if it is run from a build server. The reporter currently detects Travis and CircleCI. Please open an issue if your build server is missing. On all these environments, it will ignore builds of pull requests. Apart from build server specific environment variables, the reporter uses one environment variable:

Environment variable Description Example value
STRYKER_DASHBOARD_API_KEY Your API key (generated at https://dashboard.stryker-mutator.io) 52248872-2edc-4102-a43a-bcfca7a9ca99

You will need to pass the STRYKER_DASHBOARD_API_KEY environment variable yourself. You can create one for your repository by logging in on the Stryker dashboard. We strongly recommend you use encrypted environment variables:

files [string[]]

Default: result of git ls-files --others --exclude-standard --cached --exclude .stryker-tmp
Command line: [--files|-f] src/**/*.js,a.js,test/**/*.js
Config file: files: ['src/**/*.js', '!src/**/index.js', 'test/**/*.js']

With files you can choose which files should be included in your test runner sandbox. This is normally not needed as it defaults to all files not ignored by git. Try it out yourself with this command: git ls-files --others --exclude-standard --cached --exclude .stryker-tmp.

If you do need to override files (for example: when your project does not live in a git repository), you can override the files here.

When using the command line, the list can only contain a comma separated list of globbing expressions.
When using the config file you can provide an array with strings

You can ignore files by adding an exclamation mark (!) at the start of an expression.

symlinkNodeModules [boolean]

Default: true
Command line: none
Config file: symlinkNodeModules: true

The symlinkNodeModules value indicates whether or not Stryker should create a symbolic link to your current node_modules directory in the sandbox directories. This makes running your tests by Stryker behave more like your would run the tests yourself in your project directory. Only disable this setting if you really know what you are doing.

For example, Jest expects any plugins to be located at "./node_modules/..." in the Sandbox directory. Another example can be running karma tests where you specify files from the 'node_modules/angular/...'. Without symlinking the node_modules directory this would not be possible.

Stryker will look for the node_modules directory to use in the current basePath (or current working directory) and its parent directories.

plugins [string[]]

Default: ['stryker-*']
Command line: --plugins stryker-html-reporter,stryker-karma-runner
Config file: plugins: ['stryker-html-reporter', 'stryker-karma-runner']

With plugins you can add additional Node modules for Stryker to load (or require). By default, all node_modules starting with stryker- will be loaded, so you would normally not need to specify this option. These modules should be installed right next to stryker. For a current list of plugins, you can consult npm or stryker-mutator.io.

port [number]

Removed. With this setting you could configure the port used by the karma test runner. It can now be configured directly with karma: { config: { port: 7654 } } (but shouldn't be needed as karma supports its own port selection)

timeoutMS [number]

Default: 5000
Command line: --timeoutMS 5000
Config file: timeoutMS: 5000

When Stryker is mutating code, it cannot determine indefinitely whether or not a code mutation results in an infinite loop (see Halting problem). In order to battle infinite loops, a test run gets killed after a certain period of time. This period is configurable with two settings: timeoutMS and timeoutFactor. To calculate the actual timeout in milliseconds the, following formula is used:

timeoutForTestRunMs = netTimeMs * timeoutFactor + timeoutMS + overheadMs

Both netTimeMs and overheadMs are calculated during the initial test run. They are logged on info level. For example when overheadMs is 92 and netTimeMs is 5: Initial test run succeeded. Ran 6 tests in 4 seconds (net 5 ms, overhead 92 ms).

With timeoutFactor you can configure the allowed deviation relative to the time of a normal test run. Tweak this if you notice that mutants are prone to creating slower code, but not infinite loops. timeoutMS lets you configure an absolute deviation. Use it, if you run Stryker on a busy machine and you need to wait longer to make sure that the code indeed entered an infinite loop.

timeoutFactor [number]

Default: 1.5
Command line: --timeoutFactor 1.5
Config file: timeoutFactor: 1.5

See Timeout in milliseconds.

maxConcurrentTestRunners [number]

Default: (number of CPU Cores)
Command line: --maxConcurrentTestRunners 3
Config file: maxConcurrentTestRunners: 3

Specifies the maximum number of concurrent test runners to spawn.
Mutation testing is time consuming. By default Stryker tries to make the most of your CPU, by spawning as many test runners as you have CPU cores.
This setting allows you to override this default behavior.

Reasons you might want to lower this setting:

  • Your test runner starts a browser (another CPU-intensive process)
  • You're running on a shared server and/or
  • Your hard disk cannot handle the I/O of all test runners

thresholds [object]

Default: { high: 80, low: 60, break: null }
Command line: none
Config file: thresholds: { high: 80, low: 60, break: null }

Description
Specify the thresholds for mutation score.

  • mutation score >= high: Awesome! Reporters should color this green and happy.
  • high > mutation score >= low: Warning! Reporters should color this orange/yellow. Watch yourself!
  • mutation score < low: Danger! Reporters should color this in red. You're in danger!
  • mutation score < break: Error! Stryker will exit with exit code 1, indicating a build failure. No consequence for reporters, though.

It is not allowed to only supply one value of the values (it's all or nothing). However, high and low values can be the same, making sure colors are either red or green. Set break to null (default) to never let your build fail.

logLevel [string]

Default: info
Command line: --logLevel info
Config file: logLevel: 'info'

Set the log level that Stryker uses to write to the console. Possible values: off, fatal, error, warn, info, debug and trace

Note: Test runners are run as child processes of the Stryker Node process. All output (stdout) of the testRunner is logged as trace.
Thus, to see logging output from the test runner set the logLevel to all or trace.

fileLogLevel [string]

Default: off
Command line: --fileLogLevel info
Config file: fileLogLevel: 'info'

Set the log level that Stryker uses to write to the "stryker.log" file. Possible values: off, fatal, error, warn, info, debug and trace

allowConsoleColors [boolean]

Default: true
Command line: --allowConsoleColors true Config file: allowConsoleColors: true

The allowConsoleColors value indicates whether or not Stryker should use colors in console.

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

0.35.1 (2019-02-12)

Bug Fixes

  • mutants: Prevent memory leak when transpiling mutants (#1376) (45c2852), closes #920

0.35.0 (2019-02-08)

Bug Fixes

  • stryker: Add logging on debug level for transpile errors (7063216)

Features

  • config-editors: Remove side effects from all config editor plugins (#1317) (1f61bed)
  • dependency injection: Add dependency injection for plugins (#1313) (f90cd56), closes #667
  • html-reporter: Remove side effects from html reporter (#1314) (66d65f7)
  • mutators: Remove side effects from mutator plugins (#1352) (edaf401)
  • port: Deprecate property 'port' (#1309) (2539ee0)
  • test-frameworks: Remove side effects from all test-framework plugins (#1319) (a7160f4)
  • test-runner: Use new plugin system to load TestRunner plugins (#1361) (266247b)
  • transpilers: Remove side effects transpiler plugins (#1351) (9a8b539)

0.34.0 (2018-12-23)

Features

  • stryker-api: Support stryker-api 0.23 (#1293) (10720ad)
  • zero config: Support mutation testing without any configuration (#1264) (fe8f696)

0.33.2 (2018-12-12)

Note: Version bump only for package stryker

0.33.1 (2018-11-29)

Bug Fixes

  • stryker-api: Update stryker-api peer dependency version (677fc28)

0.33.0 (2018-11-29)

Bug Fixes

  • JestTestRunner: run jest with --findRelatedTests (#1235) (5e0790e)

Features

  • console-colors: Add a global config option to enable/disable colors in console (#1251) (19b1d64)
  • Stryker CLI 'init': Support for preset configuration during 'stryker init' (#1248) (5673e6b)

0.32.1 (2018-11-21)

Bug Fixes

  • log4js: Don't log log4js category to console (#1246) (479d999)

0.32.0 (2018-11-13)

Features

  • error debugging: add remark to run again with loglevel trace (#1231) (c9e3d97), closes #1205

0.31.0 (2018-11-07)

Features

  • clear text reporter: Prettify the clear-text report (#1185) (a49829b)

0.30.1 (2018-10-25)

Bug Fixes

  • file resolving: ignore dirs from git submodules (#1195) (7806083)

0.30.0 (2018-10-15)

Bug Fixes

  • any-promise: Don't register a promise implementation (#1180) (1d3e2f6)

Features

  • ProgressReporter: Format estimated time of completion (ETC) (#1176) (4e76b46)

0.29.5 (2018-10-03)

Note: Version bump only for package stryker

0.29.4 (2018-10-02)

Bug Fixes

  • ScoreResultCalculator: fix faulty filenames in stryker score result (#1165) (2555f49), closes #1140

0.29.3 (2018-09-30)

Bug Fixes

0.29.2 (2018-09-14)

Note: Version bump only for package stryker

0.29.1 (2018-08-28)

Note: Version bump only for package stryker

0.29.0 (2018-08-21)

Features

  • stryker config: rename config setting timeoutMs to timeoutMS (#1099) (3ded998), closes #860

0.28.0 (2018-08-19)

Features

  • stryker config: rename config setting reporter to reporters (#1088) (584218a), closes #793

0.27.1 (2018-08-17)

Bug Fixes

  • dependencies: support stryker-api 0.19.0 (#1087) (44ce923)

0.27.0 (2018-08-17)

Features

0.26.2 (2018-08-16)

Note: Version bump only for package stryker

0.26.1 (2018-08-03)

Bug Fixes

  • stryker: Clear timeouts so stryker exits correctly (#1063) (2058382)

0.26.0 (2018-08-03)

Features

0.25.1 (2018-07-23)

Bug Fixes

  • Test runner: Don't crash on first failure (#1037) (94790c3)

0.25.0 (2018-07-20)

Bug Fixes

Features

  • logging: Allow log to a file (#954) (c2f6b82), closes #748
  • stryker init: Add support for yarn installs to stryker init (#962) (5aca197)

0.24.2 (2018-07-04)

Bug Fixes

  • stryker: kill entire test process tree (#927) (71af3e3)

0.24.1 (2018-05-31)

Bug Fixes

  • Peer dep: set correct stryker-api peer dependency (#830) (af973a1)

0.24.0 (2018-05-21)

Features

  • Dashboard reporter: add support for CircleCI (a58afff)

0.23.0 (2018-04-30)

Features

BREAKING CHANGES

  • node version: Node 4 is no longer supported.

0.22.4 (2018-04-20)

Bug Fixes

  • Sandbox: make sure .stryker-tmp does not appear in the sandbox (#716) (48acc2c), closes #698

0.22.3 (2018-04-20)

Bug Fixes

0.22.2 (2018-04-20)

Note: Version bump only for package stryker

0.22.1 (2018-04-13)

Bug Fixes

  • Dependencies: set correct stryker-api dependency (#694) (e333fd9)

0.22.0 (2018-04-11)

Features

  • Sandbox isolation: symbolic link node_modules in sandboxes (#689) (487ab7c)

0.21.1 (2018-04-09)

Bug Fixes

  • Dashboard reporter: fix typos (047a370)

0.21.0 (2018-04-04)

Bug Fixes

  • Progress reporter: don't prevent stryker from closing (21255aa)

Features

  • identify-files: use git to list files in InputFileResolver (df6169a)

BREAKING CHANGES

  • identify-files: * The InputFileDescriptor syntax for files is no longer supported.
  • Test runner plugins should keep track of which files are included into a test run and in which order.
  • Transpiler plugins should keep track of which files are to be transpiled.

0.20.1 (2018-03-22)

Bug Fixes

  • peerDependency: update stryker-api requirement to ^0.14.0 (3ce04d4)

0.20.0 (2018-03-22)

Features

  • stryker: add excludedMutations as a config option (#13) (#652) (cc8a5f1)

0.19.4 (2018-03-21)

Note: Version bump only for package stryker

0.19.3 (2018-02-14)

Bug Fixes

  • coverage-analysis: make sure to not erase sourceMappingURL comment (#625) (eed7147)

0.19.2 (2018-02-08)

Bug Fixes

  • stryker: remove import to undependant module (0956194)

0.19.1 (2018-02-07)

Bug Fixes

  • dependencies: update stryker-api requirement to ^0.13.0 (8eba6d4)

0.19.0 (2018-02-07)

Features

  • coverage analysis: Support transpiled code (#559) (7c351ad)
  • dashboard-reporter: Add dashboard reporter (#472) (0693a41)

0.18.2 (2018-02-02)

Note: Version bump only for package stryker

0.18.1 (2018-01-19)

Note: Version bump only for package stryker

0.18.0 (2018-01-12)

Features

  • Child processes: Support process message polution (#572) (dbe4d84)

0.17.2 (2018-01-10)

Bug Fixes

  • es5-mutator: Describe migration for users with plugins (6be95c3)

0.17.1 (2018-01-10)

Note: Version bump only for package stryker

0.17.0 (2017-12-21)

Features

  • cvg analysis: New coverage instrumenter (#550) (2bef577)

0.16.0 (2017-12-19)

Features

0.15.6 (2017-12-18)

Note: Version bump only for package stryker

0.15.5 (2017-12-05)

Note: Version bump only for package stryker

0.15.4 (2017-11-27)

Note: Version bump only for package stryker

0.15.3 (2017-11-27)

Note: Version bump only for package stryker

0.15.2 (2017-11-25)

Bug Fixes

0.15.1 (2017-11-24)

Bug Fixes

0.15.0 (2017-11-24)

Features

  • JavaScript mutator: Add stryker-javascript-mutator package (#467) (06d6bac), closes #429

0.14.1 (2017-11-17)

Note: Version bump only for package stryker

0.14.0 (2017-11-13)

Bug Fixes

  • InputFileResolver: Presume .zip and .tar are binary files. (#452) (94f8fdc), closes #447

Features

  • mocha 4: Add support for mocha version 4 (#455) (de6ae4f)

0.13.0 (2017-10-24)

Features

  • default score: Set default score to 100 (b9231fe)
  • transpiler api: Async transpiler plugin support (#433) (794e587)

0.12.0 (2017-10-20)

Bug Fixes

  • mocha framework: Select tests based on name (#413) (bb7c02f), closes #249

BREAKING CHANGES

  • mocha framework: * Change api of TestFramework. It now provides an array of TestSelection objects, instead of an array of numbers with test ids.

0.11.2 (2017-10-11)

Bug Fixes

  • deps: Remove types for prettier as a dev (7014322)

0.11.1 (2017-10-10)

Note: Version bump only for package stryker

0.11.0 (2017-10-03)

Bug Fixes

Features

  • ConfigReader: Use CLI options with default config file (#404) (99cdc61), closes #390
  • StrykerInitializer: Add the option to select mutators and transpilers (#403) (c61786f)

0.10.3 (2017-09-22)

Note: Version bump only for package stryker

0.10.2 (2017-09-20)

Bug Fixes

  • dependency on 'rx': Remove requires to 'rx' directly (71f7330)
  • missing dependency: Remove invalid package-lock file (aeeeb7b)
  • MutationTestExecutor: Only complete defined observables (#381) (a0a1355)

0.10.1 (2017-09-20)

Bug Fixes

  • missing dependency: Remove invalid package-lock file (aeeeb7b)

0.10.0 (2017-09-19)

Features

  • typescript: Add support for TypeScript mutation testing (#376) (ba78168)

BREAKING CHANGES

  • typescript: * Hoist the Mutator interface to a higher abstraction. With this interface it was possible to add mutators for specific ES5 AST nodes. As we're moving away from ES5, this plugin abstraction had to be hoisted to a higher level. It is no longer possible to plugin a specific ES5 node mutator.
  • Update report interface: Rename MutantState.Error => MutantState.RuntimeError.

0.9.3 (2017-09-09)

Bug Fixes

  • score-result: Wrap single file reports (#379) (986eb6b)

0.9.2 (2017-09-06)

Bug Fixes

  • init command: indent "stryker.conf.js" file after "stryker init" (52ac439)

0.9.1 (2017-09-04)

Bug Fixes

  • stryker-init: Stryker init won't create temp folder (#361) (a4333c9)

0.9.0 (2017-08-25)

Bug Fixes

  • MochaTestRunner: Exit with a warning if no tests were executed (#360) (ac52860)

Code Refactoring

  • change ConfigWriter interface name to ConfigEditor (#357) (ec4ae03)

BREAKING CHANGES

  • Public api for ConfigWriter is renamed to ConfigEditor. The corresponding write method is renamed to edit. If you're using custom ConfigWriter plugins you should rename the write method to edit. Please update the stryker-mocha-framework and stryker-karma-runner to the latest versions as they provide the new ConfigEditor plugin.

0.8.0 (2017-08-11)

Features

  • ci-integration: Configurable thresholds based on mutation score (#355) (93f28cc), closes #220
  • IsolatedTestRunner: Handle promise rejections (#351) (f596993)

0.7.0 (2017-08-04)

Features

  • ConfigReader: Inform about init command (#340) (7f3e61f)
  • html-reporter: Score result as single source of truth (#341) (47b3295), closes #335

0.6.7 (2017-07-14)

Bug Fixes

  • ts-2.4: Fix type issues for typescript 2.4 (#337) (c18079b), closes #337

0.6.6 (2017-06-16)

Bug Fixes

  • npmignore: Align npm ignores (#321) (db2a56e)
  • Manual version bump (a67d90b)

0.6.3 (2017-06-08)

Bug Fixes

  • intializer: Remove install of stryker itself (#317) (8b8dd30), closes #316
  • MethodChainMutatorSpec: Fix test name, so it matches the name of the mutator. (#313) (5e53982), closes #313

0.6.3 (2017-06-02)

Features

  • Mutators: Add Boolean substitution mutators (#294) (a137a97)
  • report-score-result: Report score result as tree (#309) (965c575)

0.6.0 (2017-04-21)

Bug Fixes

  • IsolatedTestRunnerAdapter: Don't kill processes using SIGKILL (#270) (f606e9d)
  • IsolatedTestRunnerAdapter: Improve error handling when test runner worker process crashes (#285) (2b4bda7)

Features

  • multi-package: Migrate to multi-package repo (#257) (0c2fde5)

0.5.9 (2017-03-01)

Bug Fixes

  • fileUtilsSpec: Fix test naming (#240) (f1321be)
  • IsolatedTestRunner: Fix channel closed error (#219) (202d4b5)

0.5.8 (2017-02-03)

Bug Fixes

  • bin/stryker: Changed file permissions on stryker so it's executable on Linux (#226) (c1a5798)
  • fs: Use graceful-fs instead of fs directly (#221) (4c1bf41)
  • typo: change not coverage to no coverage (f2c7198)

Features

  • ArrayDeclarationMutator: Add new mutator. (#229) (9805917)

0.5.7 (2017-01-16)

Features

  • append-only-progress: Implement new reporter (#213) (7b68506)

0.5.6 (2016-12-31)

Bug Fixes

  • InputFileResolver: Don't ignore all files (#210) (ef3dde4)

0.5.5 (2016-12-30)

Features

  • ClearTextReporter: Limit the number of tests (142de71)
  • ConfigReader: Look for stryker.conf.js in the CWD (#209) (d196fd3)
  • InputfileResolver: exclude online files from globbing (#194) (a114594)
  • lifetime-support: Remove 0.12 node support (38f72ae)
  • progress-reporter: Create new progress reporter (#202) (11c345e)
  • ProgressReporter: add new line after report (#193) (931c35f)
  • ts21: Upgrade to TypeScript 2.1 (#203) (4ce1d16)

0.5.4 (2016-12-15)

Features

  • es2015-promise: Remove dep to es6-promise (#189) (3a34fe1)
  • exclude-files: Exclude files with a ! (#188) (05a356d)
  • sandbox: Change cwd in Sandboxes (#187) (28e1e5d)

0.5.3 (2016-11-26)

Features

  • test-runner: Config for maxConcurrentTestRunners (492bb80)

0.5.2 (2016-11-21)

Bug Fixes

  • coverage: Make 'perTest' work with dry-run (d700f20)

0.5.1 (2016-11-20)

Bug Fixes

  • .npmignore: Add temp folder to npm ignore (07d1406)
  • istanbul: Add dependency to istanbul (729d770)

0.5.0 (2016-11-20)

Bug Fixes

  • clear-text-reporter: Fix a typo (0e009dc)

Features

  • cli: Add support for commands (#181) (fd824de)
  • one-pass-coverage: Support one-pass coverage measurement (#165) (1796c93)

0.4.5 (2016-10-29)

Bug Fixes

  • BlockStatementMutator: Not mutate empty block (#160) (da4a3cf)
  • stryker: Stop running if there are no mutants (#161) (8f68da8)

0.4.4 (2016-10-04)

Bug Fixes

  • line-endings: Enforce unix line endings (#152) (554c167)
  • MutantRunResultMatcher: False positive fix (#155) (255f84b), closes #155

Features

0.4.3 (2016-09-09)

Bug Fixes

  • bithound: Add bithoundrc with tslint engine (#117) (3b7e9f9)
  • deps: Set version of stryker-api (338d8ec)
  • isolated-test-runner: Support regexes (#146) (51b6903)
  • log4jsMock: Restore sandbox in log4js mock (#122) (4a88b58)
  • parserUtils: Add support for duplicate ast (#119) (b35e223)
  • StrykerTempFolder: Use local tmp folder (#121) (53651b2)
  • test-deps: Set version of stryker-api in it (a094e4b)
  • TestRunnerOrchestrator: Error in test run (#120) (b03e84b)
  • TestRunnerOrchestrator: Initial test run (#130) (a3c8902)
  • unittest: Fix merge error in TestRunnerOrchestratorSpec (1f6a05a)

Features

  • test-runner: Support lifecycle events (#125) (8aca3bd)
  • test-runner: Support lifecycle events (#132) (0675864)
  • unincluded-files: Add support for unincluded (#126) (916ae55)

0.4.2 (2016-08-09)

Bug Fixes

  • bithound: Add bithoundrc with tslint engine (#117) (3b7e9f9)
  • deps: Set version of stryker-api (338d8ec)
  • log4jsMock: Restore sandbox in log4js mock (#122) (4a88b58)
  • parserUtils: Add support for duplicate ast (#119) (b35e223)
  • StrykerTempFolder: Use local tmp folder (#121) (53651b2)
  • test-deps: Set version of stryker-api in it (a094e4b)
  • TestRunnerOrchestrator: Error in test run (#120) (b03e84b)
  • TestRunnerOrchestrator: Initial test run (#130) (a3c8902)
  • unittest: Fix merge error in TestRunnerOrchestratorSpec (1f6a05a)

Features

  • test-runner: Support lifecycle events (#125) (8aca3bd)
  • test-runner: Support lifecycle events (#132) (0675864)
  • unincluded-files: Add support for unincluded (#126) (916ae55)

0.4.1 (2016-07-22)

Features

  • test-runner: Support lifecycle events (#132) (bea5f11)

0.4.0 (2016-07-21)

Bug Fixes

  • bithound: Add bithoundrc with tslint engine (#117) (60191e3)
  • deps: Set version of stryker-api (aa51dc1)
  • log4jsMock: Restore sandbox in log4js mock (#122) (e3f3ce1)
  • parserUtils: Add support for duplicate ast (#119) (f7eda47)
  • StrykerTempFolder: Use local tmp folder (#121) (84790f2)
  • test-deps: Set version of stryker-api in it (e006ade)
  • TestRunnerOrchestrator: Error in test run (#120) (564f15c)
  • TestRunnerOrchestrator: Initial test run (#130) (7f0b26a)
  • unittest: Fix merge error in TestRunnerOrchestratorSpec (55afd5e)

Features

  • test-runner: Support lifecycle events (#125) (6c0e229)
  • unincluded-files: Add support for unincluded (#126) (c66e380)

0.3.2 (2016-04-28)

0.3.1 (2016-04-17)

0.2.1 (2016-04-14)

0.2.0 (2016-04-08)

0.1.0 (2016-03-24)