All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
8.7.1 (2024-12-11)
8.7.0 (2024-12-06)
- deps: update dependency mutation-testing-elements to v3.4.0 (#5138) (32001dd)
- support mocha v11 (#5141) (ede4255)
- logging: remove dependency on log4js (#5111) (276ffd8)
- temp-dir: allow multiple instances to share the same temp-dir (#5120) (d15453e), closes #5086
8.6.0 (2024-09-29)
- deps: update dependency @cucumber/messages to v26 (#4960) (7de2749)
- deps: update dependency @inquirer/prompts to v6 (#5029) (d727cb7)
- deps: update dependency emoji-regex to ~10.4.0 (#4987) (8337f88)
- deps: update dependency execa to v9.4.0 (#5024) (99d60e0)
- deps: update dependency npm-run-path to v6 (#4986) (1c9f354)
- deps: update dependency tslib to v2.7.0 (#4981) (4bdef40)
- deps: update dependency typed-rest-client to ~2.1.0 (#5025) (454e5e2)
- deps: update mutation-testing-elements monorepo to v3.3.0 (#5026) (88caf82)
- jest-runner: allow prerelease jest versions (#5015) (#5016) (0c9cdd1)
- ignore: add "angular" ignore plugin (#4789) (5d792d8)
- init: use user configured npm registry (#4937) (33e348e)
- instrumenter: add expression mutator for Date (#4917) (#4918) (8207ef6)
- reporter: add "% score of covered" column to the clear text report (#4945) (3b511ed)
8.5.0 (2024-08-11)
- html report: support mutation coverage based on covered code (cec0b95)
8.4.0 (2024-08-06)
- instrumenter: support explicit resource management in TS (#4928) (2bd046a), closes #4876
- mocha-runner: properly restrict tests to run (f9ef08e)
- mutant placement: don't place mutants inside assignment expression (#4927) (4b8885c), closes #4884
- node-18: revert changes to support node 18 again (#4935) (42162bd)
8.3.0 (2024-08-01)
- babel: update babel dependency to 7.25 (#4916) (07e8088)
- deps: update babel monorepo to ~7.24.0 (#4762) (0a5d446)
- deps: update mutation-testing-elements monorepo to v3.1.1 (#4824) (03eed69)
- mocha-runner: compatibility with Mocha v10.5.1 and up (#4885) (4cc43c8)
8.2.6 (2024-02-25)
- deps: update dependency commander to v12 (#4713) (76b1acd)
- deps: update dependency npm-run-path to ~5.3.0 (#4752) (e440d3e)
- instrumenter: support typescript constructors with code before
super()
(#4757) (bf85d37), closes #4744
8.2.5 (2024-02-20)
8.2.4 (2024-02-19)
- deps: update dependency semver to ~7.6.0 (#4719) (ffe9aeb)
- typescript-checker: support prerelease TypeScript versions (#4738) (40ace6e)
8.2.3 (2024-02-03)
8.2.2 (2024-01-29)
- publish config: make
create-stryker
a public package (910851f)
8.2.1 (2024-01-29)
8.2.0 (2024-01-29)
8.1.0 (2024-01-29)
- deps: update a lot of dependencies (#4691) (5b45fa6)
- deps: update dependency angular-html-parser to ~5.2.0 (#4649) (2d998e2)
- core: Add .next, .nuxt and .svelte-kit to ignorePattern (#4645) (ddc28ea)
- instrumenter: support
.mts
and.cts
file extensions (#4694) (7a09c75)
8.0.0 (2023-11-30)
- core: short circuit test executor when no tests and allowEmpty (#4477) (ce3e5cd)
- deps: update dependency @cucumber/messages to v23 (#4540) (0472118)
- deps: update dependency angular-html-parser to v5 (#4533) (fb5a167)
- deps: update dependency emoji-regex to v10 (#4496) (418688b)
- deps: update dependency tap-parser to ~15.3.0 (#4492) (5ababb3)
- deps: update mutation-testing-elements monorepo to v2.0.5 (#4536) (45e3ae6)
- jest-runner: support
handleTestEvent
class property (#4623) (23f557d)
- init: add svelte custom initializer (#4625) (418722d)
- node: drop official support for node 16 (#4542) (e190207)
- svelte: support mutating
.svelte
files (0ef9a7f) - vitest: support browser mode (#4628) (3d02969)
- node: NodeJS 16 is no longer supported. Please use NodeJS 18 or higher. See https://nodejs.org/en/about/previous-releases
7.3.0 (2023-10-15)
- core: disableTypeChecks true only forces ts-like file match (#4485) (31f3411)
- cucumber: support cucumber 10 (74c75b6)
- deps: update dependency commander to ~11.1.0 (#4483) (ab03c0d)
- deps: update dependency tap-parser to v15 (#4457) (f3f16c3)
- package: don't publish test and tsbuildinfo. (#4464) (ae3d2d8)
- Ignorer plugin: support ignorer plugins (#4487) (4fe1000)
- plugin: add support for
declareValuePlugin
(#4490) (a3c35ca)
7.2.0 (2023-10-02)
- deps: update dependency execa to v7.2.0 (#4384) (d3da2d4)
- deps: update dependency execa to v8 (#4456) (47a3483)
- deps: update dependency tslib to v2.6.2 (#4380) (ad03cf6)
- deps: update mutation-testing-elements monorepo to v2.0.3 (#4399) (2aa1f54)
- npm package: ignore unused files (#4405) (f14e789)
- config: allow suffix 'config' to config filename (#4308) (fc8596e)
- reporter: configurable clear-text reporter (#4330) (74bcc74)
- string mutations: don't mutate Symbol descriptions (#4407) (bdd0d5c)
7.1.1 (2023-07-15)
- deps: update dependency chalk to v5 (#4343) (ed265e5)
- deps: update dependency tslib to v2.6.0 (#4335) (e4c00ef)
- tap: use custom time spent logic as fallback (#4358) (354a660)
7.1.0 (2023-06-24)
- deps: update dependency commander to v11 (#4304) (f9d5673)
- deps: update dependency glob to v10.3.0 (#4321) (72615b6)
- vitest: allow
dispose
withoutinit
(#4284) (55464e0) - vitest: harden against forgotten
await
(#4319) (441b645)
- init: use registry.npmjs.com for queries (#4298) (a952edf)
- init: use vitest runner for vue projects (#4327) (ab7313d)
- tap-runner: add forceBail configuration option (#4326) (55a5357)
- tap-runner: allow custom node arguments (#4283) (5ef0edd)
- vitest-runner: add
"dir"
config option (#4329) (eb06075) - vitest: set NODE_ENV to test (#4290) (40033f6)
7.0.2 (2023-06-08)
- config: regression in import options (#4277) (0e9b997)
- deps: update dependency get-port to v7 (#4260) (c9d384c)
- deps: update dependency tslib to v2.5.3 (#4255) (8084d15)
- tap: log command to run on debug (#4263) (dd8b53d)
7.0.1 (2023-06-03)
- deps: update
@stryker-mutator/core
peer dep (9dd4a76)
7.0.0 (2023-06-02)
- core: improve no-mutate warning (#4248) (6bf7a56)
- deps: update babel monorepo (#4233) (a8f2c1e)
- deps: update dependency @cucumber/messages to v22 (#4091) (ad6f82b)
- deps: update dependency inquirer to ~9.2.0 (#4137) (d985780)
- deps: update dependency minimatch to v8 (#4079) (af4a62c)
- deps: update dependency mutation-testing-elements to v2 (#4148) (50071e6)
- deps: update dependency semver to v7.4.0 (#4101) (c317294)
- deps: update dependency semver to v7.5.0 (#4121) (4c8dade)
- deps: update dependency tap-parser to v13 (#4116) (161f099)
- deps: update dependency tslib to v2.5.2 (#4241) (4cd2a86)
- deps: update dependency weapon-regex to ~1.1.0 (#4102) (899ae6e)
- deps: update mutation-testing-elements monorepo to v2.0.1 (#4182) (c1b7312)
- deps: update mutation-testing-metrics and mutation-report-schema to v2 (#4154) (9b77a3f)
- incremental: correctly identify removed test files (#4134) (7342ac6)
- instrumenter: Use
globalThis
when available (#4169) (7d1e58e) - Reporter API: use 1-based locations with
onMutantTested
(#4158) (f5227e0) - tap-runner: add
glob
as a dependency (#4225) (ba6bb7e) - vitest: explicitly error when browser-mode is enabled (#4243) (e70ff30)
- vitest: use cwd for communication dir (#4217) (736d97c)
- config: add
--allowEmpty
option (#4198) (44e355e) - config: add
'always'
option tocleanTempDir
(#4187) (f02efb2) - mutations: add Math method expression mutants (#4076) (b281163)
- node: Drop support for node 14 (#4105) (a88744f)
- reporter-api: remove
onAllMutantsTested
(#4234) (762c023) - TAP runner: add support for the node TAP runner (371baf0)
- tap-runner: support
"nodeArgs"
(#4235) (c149b34) - tap: allow multiple patterns for
testFiles
(#4253) (76b53f1) - type-checking: disable type check by default (#4246) (d45350a)
- vitest: support
bail
(#4239) (6b2eb4d) - vitest: support vitest test runner (7394e95)
- type-checking:
disableTypeChecks
is nowtrue
by default. You can use this configuration to opt out:
{
"disableTypeChecks": "{test,src,lib}/**/*.{js,ts,jsx,tsx,html,vue,cts,mts}"
}
- reporter-api: The event
onAllMutantsTested
has been removed. Plugin creators should useonMutationTestReportReady
instead. - esm: Deep (and undocumented) imports from
@stryker-mutator/core
or one of the plugins will no longer work. If you want to import something that's not available, please let us know by opening an issue - node: Node 14 is no longer supported. Please install an LTS version of node: nodejs.org/
6.4.2 (2023-03-24)
- angular: generate karma.conf.js file when it is missing (#4054) (915c6d8)
- cucumber: officially support cucumber 9 (#4041) (e4f10d1)
- deps: update dependency execa to v7.1.1 (#4025) (13bc0b5)
- deps: update dependency log4js to ~6.9.0 (#3988) (fca777f)
- instrumenter: replace deprecated method call (#4023) (c14800a)
- progress reporter: improve ETC prediction (#4024) (956bbe9), closes #4018
6.4.1 (2023-02-17)
- deps: set correct stryker peer dep version (c88c537)
6.4.0 (2023-02-17)
- deps: update dependency angular-html-parser to v4 (#3925) (f62c645)
- deps: update dependency commander to v10 (#3936) (e8af5a4)
- deps: update dependency execa to v7 (#3975) (6c36120)
- deps: update dependency glob to ~8.1.0 (#3945) (edb767a)
- deps: update dependency mkdirp to v2 (#3946) (0ee9018)
- deps: update dependency mutation-testing-elements to v1.7.14 (#3969) (2f3f481)
- deps: update dependency mutation-testing-metrics to v1.7.14 (#3970) (ddf32ee)
- deps: update dependency mutation-testing-report-schema to v1.7.14 (#3971) (a0d5743)
- deps: update dependency tslib to ~2.5.0 (#3952) (7548287)
- project reader: ignore configured output files by default. (#3894) (2ff2f07)
6.3.1 (2022-12-18)
- deps: update babel monorepo to ~7.20.0 (#3810) (cd1c962)
- deps: update dependency @cucumber/messages to v20 (#3858) (29939c3)
- deps: update dependency angular-html-parser to v3 (#3869) (39d6381)
- deps: update dependency chalk to ~5.2.0 (#3898) (c325272)
- diff: last test generation (#3910) (f88b038)
- disable-comment: log a warning when a specified mutator doesn't exist(#3842) (fe79d49)
6.3.0 (2022-10-30)
- deps: update dependency angular-html-parser to ~2.1.0 (#3797) (33eb2b1)
- deps: update dependency chalk to ~5.1.0 (#3773) (973dc7b)
- jest-runner: automatically set
NODE_ENV
env variable (#3816) (9fc7a6f) - jest: support more config file formats (#3761) (7d42139)
- karma-runner: support zero-mutant runs (#3787) (c6a9219)
- ci: forbid
.only
in CI pipeline tests (#3823) (051ec93) - clear-text reporter: add
allowEmojis
option in console (#3820) (79cc05f) - core: add
--dryRunOnly
CLI argument to only run initial tests (#3814) (f2cf7e6) - core: add support for pnpm as package manager (#3802) (af0e34e)
- disableTypeChecks: add option 'true' to disable all type checks (#3765) (3c3d298)
- init: document test runner homepage url in stryker.conf.json (#3817) (92c0852)
- worker: add worker count env variable to processes (#3821) (efb6fd6)
6.2.3 (2022-10-10)
- deps: update dependency angular-html-parser to v2 (#3760) (8dc667e)
- deps: update dependency log4js to ~6.7.0 (#3758) (535311d)
- jest: support multiple jest installations (#3781) (9f10e20)
6.2.2 (2022-09-06)
Note: Version bump only for package stryker-parent
6.2.1 (2022-09-06)
6.2.0 (2022-09-06)
- deps: update babel monorepo to ~7.19.0 (#3716) (edc1ae0)
- deps: update dependency log4js to ~6.6.0 (#3628) (201bba2)
- json-report: make all file paths relative in report (#3617) (d51f1a9)
- mutant placing: computed member expressions (#3713) (e6ee245)
- regex: support unicode regex flags(#3642) (fcf3a6b), closes #3579
- typescript: support TS v4.8 (#3700) (f6b8ff4)
6.2.0-beta.0 (2022-06-28)
- incremental: add incremental mode (04cf8a2)
6.1.2 (2022-06-28)
Note: Version bump only for package stryker-parent
6.1.1 (2022-06-28)
Note: Version bump only for package stryker-parent
6.1.0 (2022-06-27)
-
deps: update dependency @cucumber/messages to v18 (#3554) (596347e)
-
deps: update dependency @cucumber/messages to v19 (#3559) (969fb1d)
-
deps: update dependency commander to ~9.3.0 (#3546) (1142f11)
-
deps: update dependency minimatch to ~3.1.0 (#3549) (a4e5c43)
-
deps: update dependency minimatch to v5.1.0 (#3548) (c27ec2f)
-
jest: allow mixin jest env for unit testing (#3598) (da8a720)
-
logging: log non-existing node_modules on debug (#3521) (766072f)
-
feat(cucumber): support native esm (#3596) (4eaf713), closes #3596
- mocha-runner: report the test's file name (#3504) (34d8e70)
- mutators: Add method expression mutator (#3508) (70a4e4f)
- plugin: allow fileDescriptions to be injected (#3582) (fa2b77e)
- The
@stryker-mutator/cucumber-runner
now requires@cucumber/cucumber
v8 or up.
6.0.2 (2022-05-05)
6.0.1 (2022-05-04)
6.0.0 (2022-05-03)
- core: allow parallel schedules (#3485) (bbbd514)
- html-report: set correct background color for html report (#3456) (a72ecf1)
- karma-runner: allow dispose during init (#3487) (4fcf148)
- reporter: report progress of failed check results only once (#3472) (dce5882)
- stryker-cli: allow stryker-cli integration (330ef6c)
- node: drop support for Node 12 (10d874e)
- config file: accept hidden config file by default. (#3457) (701374f)
- mocha-runner: widen mocha peer dependency to include v10 (#3492) (0dde30f)
- mutation testing: sort tests to improve performance (#3467) (47344d3)
- progress: improve progressbar ETC estimate (#3469) (ec63d93)
- react: support react 18 projects by default (#3491) (82d9bce)
- warn slow: warn users for slow runs (#3490) (1103958)
- file: The
File
class is no longer part of the public api and is thus no longer exported from@stryker-mutator/api
. Plugin creators shouldn't rely on it anymore. - progress: Reporter API method
onAllMutantsMatchedWithTests
has been replaced byonMutationTestingPlanReady
. Please use that for your reporter plugin instead. - progress: Reporter API method
onAllSourceFilesRead
has been removed, please useonMutationTestReportReady
to retrieve the source files. - progress: Reporter API method
onSourceFileRead
has been removed, please useonMutationTestReportReady
to retrieve the source files. - node: Drop support for Node 12. Minimal version is now Node 14.18.0.
6.0.0-beta.0 (2022-03-02)
- checker-api: support checking on groups of mutants (#3450) (e9bbd39)
- esm config: support config file as pure esm (#3432) (309a7e2)
- esm: migrate StrykerJS to pure ESM (#3409) (78c305e)
- esm: support esm in the mocha runner (#3393) (2eb3504), closes #2413 #2413
- esm: support native es modules in the jasmine runner. (#3396) (94708d0), closes #3340
- hit limit: infinite loop prevention in jest-runner (#3439) (5fecd52)
- html reporter: allow choice of
fileName
. (#3438) (d197319) - ignore static: allow to ignore static mutants (#3284) (75d9b79)
- ignore static: prevent leak of hybrid mutants (#3443) (231049a)
- karma-runner: support async karma configuration (#3433) (7204a43), closes /github.com/karma-runner/karma/blob/master/CHANGELOG.md#630-2021-03-23
- reload test environment: implement test environment reload (#3369) (b95b907)
- test runner api:
killedBy
is always an array (#3187) (c257966)
- checker-api: The
check
method of checker plugins now receives a group of mutants and should provide aCheckResult
per mutant id. - html reporter: Configuration option
htmlReporter.baseDir
is deprecated and will be removed in a later version. Please usehtmlReporter.fileName
instead. - esm config: Exporting a function (using
module.exports = function(config) {}
) from yourstryker.conf.js
file is no longer supported. This was already deprecated but now will give an error. - esm: StrykerJS is now a pure ESM. Please read this.
- esm: Node 12.20 is now the min version.
- esm: Karma v6.3 is now the min supported karma version for
@stryker-mutator/karma-runner
, since that version added support for async config loading - esm: The
@stryker-mutator/jamsine-runner
now requires jasmine@3.10 or higher. - esm: The
@stryker-mutator/mocha-runner
now requiresmocha@7.2
or higher. - reload test environment: Test runner plugins must provide
TestRunnerCapabilities
by implementing thecapabilities
method.
5.6.1 (2022-01-23)
- deps: remove vulnerability by updating log4js (#3372) (69290f2), closes /github.com/log4js-node/log4js-node/blob/master/CHANGELOG.md#640
- mutators: avoid creating some unnecessary mutations (#3346) (0f60ecf)
- typescript cheker: prevent unintentional declarationDir error (#3358) (3b510e2)
5.6.0 (2022-01-09)
- jasmine: correct peer dependency for jasmine (#3341) (07b50a9)
- report: dramatically improve rendering performance of HTML report (ad38c82)
- tsconfig: force declarationDir false for non-build projects (#3313) (461f39c)
- clear-text reporter: show n/a instead of NaN (68c5c51)
5.5.1 (2021-12-02)
- ts checker: always disable
declarationMap
(#3294) (990ecdc) - tsconfig: rewrite "include" patterns (#3293) (37ead22), closes #3281
5.5.0 (2021-11-23)
- instrumenter: don't mutate TS generics (#3268) (88d6eaf)
- logging: don't log log4js category to file as well (31609a5)
- util: clear require.cache behavior on case-insensitive file systems (#3194) (39e3d86)
- checkers: allow custom checker node args (#3179) (82c4435)
- cli: display suggestions on error (#3216) (9ed98e8)
- config: Add link to docs when generating a custom config (#3235) (7c999b8)
- hit limit: infinite loop prevention in jasmine-runner (#3199) (bc792e0)
- hit limit: infinite loop prevention in mocha-runner (f5a7d1d)
- html: new diff-view when selecting mutants (#3263) (8b253ee)
- init: add buildCommand question when running (#3213) (b9d5980)
- jest-runner: support
--findRelatedTests
in dry run (#3234) (b2e4584) - mutators: Implement missing AssignmentOperatorMutator (#3203) (95b694b)
5.4.1 (2021-09-30)
- instrumenter: don't break optional chains(#3156) (95e6b69)
- ProgressReporter: don't render when there are no valid mutants to render (#3155) (41c4177)
- typescript-checker: support TS 4.4 (#3178) (772e5bc)
5.4.0 (2021-09-01)
- ignore: support disable directives in source code (#3072) (701d8b3)
- test runner: Support for disable bail (#3074) (0962232)
5.3.0 (2021-08-07)
- checker: retry on process crash (#3059) (8880643)
- jest-runner: load .env for create-react-app (#3055) (12e1324)
- node 12: clear error message for node <12.17 (#3056) (9630fc3)
- hit limit: infinite loop prevention in karma-runner (#3031) (fc732fc)
- report: show status reason in the html report. (d777e49)
5.2.3 (2021-08-01)
- karma runner: restart a browser on disconnect error (#3020) (fc5c449)
- mocha-runner: clear error when require esm (#3015) (a835f0b), closes #3014
5.2.2 (2021-07-13)
5.2.1 (2021-07-02)
- html: highlight files in html report (b7876a4)
- mutator: add the optional chaining mutator (#2988) (43ac767)
5.2.0 (2021-07-02)
- 🥒: add support for cucumber-js test runner (#2970) (86d6f79)
- instrumenter: Implement new mutant placing algorithm (#2964) (24b8bc9)
5.1.1 (2021-06-15)
- peerDeps: update peer dependencies (05733d2)
5.1.0 (2021-06-14)
- jest-runner: allow a different rootDir (b66a617)
- jest-runner: use local jest version when jest@<25 (#2950) (3218c9e)
- jest-runner: allow configuration in a custom package.json (825548c)
- jest-runner: dynamically override "testEnvironment" (#2934) (0590869)
- jest-runner: support findRelatedTests for mutated files outside of roots (#2951) (19dccec)
- mocha-runner: officially support mocha 9 (42848bb)
5.0.1 (2021-05-28)
- jest-runner: Support Jest v27 (#2861) (8d3560b)
- mocha-runner: improve debug logging (#2925) (ecc53ee)
5.0.0 (2021-05-14)
- sandbox: make directory if not exists before symlinking node_modules (#2856) (40f9a1d)
- vue-tsx: support parsing tsx script in .vue file (#2850) (dc66c28)
- es: convert to es2019 (#2846) (36c687f)
- ignore patterns: add "ignorePatterns" config option (#2848) (a69992c), closes #1593 #2739
- jest: report test files and test positions (#2808) (c19095e)
- jest-runner: drop projectType "create-react-app-ts" (#2788) (2581e32), closes #2787 #2787
- mutators: mutate nullish coalescing operator (#2884) (021a419)
- node: Drop support for node 10 (#2879) (dd29f88)
- options: make "perTest" the default for "coverageAnalysis" (#2881) (518ebe6)
- range: remove Range from the API (#2882) (b578b22), closes #322
- report: add test details and metadata to JSON report (#2755) (acb0a3a)
- report: report test states (#2868) (e84aa88)
- reporter api: unify reporter api with mutation-testing-elements (#2798) (d173b27), closes #2766
- serialize: remove surrial (#2877) (5114835)
- range: The
range
property is no longer present on amutant
. Note, this is a breaking change for plugin creators only. - options:
"perTest"
is now the default value for "coverageAnalysis" when the configured test runner is not "command". Explicitly set"coverageAnalysis": "off"
manually to opt-out of this behavior. - node: Node 10 is no longer supported. Please use Node 12 or higher.
- serialize: Having a non-JSON-serializable value in your configuration won't be sent to the child process anymore. If you really need them in your test runner configuration, you should isolate those values and put them in test runner-specific config files, loaded by the test runner plugin itself, for example, jest.config.js, karma.conf.js, webpack.config.js.
- ignore patterns: Stryker will no longer use a git command to determine which files belong to your project. Instead, it will rely on sane defaults. You can change this behavior by defining
ignorePatterns
. - ignore patterns: The
files
configuration option is deprecated and will be removed in a future release. Please useignorePatterns
instead.
This:
{
"files": ["foo.js"]
}
Is equivalent to:
{
"ignorePatterns": ["**", "!foo.js"]
}
- reporter api: Changes to
Reporter
andTestRunner
plugin API of Stryker - jest-runner: Support for project type
create-react-app-ts
is dropped from the jest-runner.
4.6.0 (2021-04-16)
- mutation range: allow specifying a mutation range (#2751) (84647cf)
- rename: rename to StrykerJS (#2813) (dc08592), closes #2754
4.5.1 (2021-03-11)
- babel-transformer: respect top of the file comments/pragma (#2783) (ca42276)
- instrumenter: corect mutant location in .vue and .html files (547a25c), closes #2790
- peer-deps: use correct peer dep version (a6ca0f2)
4.5.0 (2021-03-06)
- logging: log info about symlinking on debug (#2756) (c672e2e)
- mutator: don't mutate string literal object methods (#2718) (964537a)
- reporting: report test name when a hook fails (#2757) (5e062b2)
- typescript-checker: improve error reporting (2502eba)
- typescript-checker: resolve tsconfig files correctly (8cf9e8c)
- package: restructure package internals (#2714) (e1711d2)
- sandbox: support symlinking of node_modules anywhere (ee66623)
4.4.1 (2021-01-27)
- jest-runner: support custom rootDir (312f6fe)
4.4.0 (2021-01-24)
- child-process: improve out-of-memory recognition (#2697) (b97220a)
- jasmine: support jasmine >3.6.2 (#2594) (582079b)
- in place: support in place mutation (#2706) (2685a7e)
- regex-mutator: smart regex mutations (#2709) (0877f44)
4.3.1 (2020-12-25)
Note: Version bump only for package stryker-parent
4.3.0 (2020-12-25)
4.2.0 (2020-12-09)
- arithmatic-mutator: Don't mutate obvious string concat (#2648) (71f8f9a)
- CLI help: remove non-existant logLevel 'all' (#2626) (718a7f2)
- debugging: allow passing node args to the test runner (#2609) (fdd95c0)
- jest-runner: resolve local jest version (#2623) (1466f9a)
- karma-runner: resolve local karma and ng version (#2622) (5b92130)
- resporter: add json reporter (#2582) (d18c4aa)
- timeout: add
--dryRunTimeoutMinutes
option (494e821)
4.1.2 (2020-11-06)
- peerDeps: update core in peerDependencies (045dbc3)
4.1.1 (2020-11-05)
- disable-checking: allow jest environment (#2607) (26aca66)
- ts: support es private fields (#2605) (6bd2fbb)
4.1.0 (2020-10-30)
- concurrency: better default for low CPU count (#2546) (eac9199)
- instrumenter: add missing case for .jsx files in parser (#2577) (cea94aa)
- string-literal-mutator: don't mutate class property keys (#2544) (8c8b478)
- angular: update Karma config path in Angular preset (#2548) (986acba)
- html: reposition stryker image (#2593) (21d635a)
- HTML reporter: Dark mode support 🌑 (#2590) (ca9a513)
- instrumenter: update to babel 7.12 (#2592) (300b73f)
- mocha: support mocha 8.2 (#2591) (b633629)
4.0.0 (2020-10-07)
- instrumenter: don't mutate generics (#2530) (ed42e3c)
- presets: update
init
templates for 4.0 release (#2526) (ec0d75e)
4.0.0-beta.10 (2020-10-05)
4.0.0-beta.9 (2020-09-30)
- config: deprecate function based config (#2499) (8ea3c18)
- core: fix "too many open files" (#2498) (5b7c242)
- instrumenter: only add header when there are mutats (#2503) (8f989cc)
- mutate config: don't warn about files not existing at the default mutate location (#2509) (66c2444), closes #2455
- shebang: support shebang in in files (#2510) (7d2dd80)
- core: add
appendPlugins
command-line option (#2385) (0dec9b8) - core: correct initial test run timing (#2496) (4f5a37e)
- jest-runner: deprecate "create-react-app-ts" (#2497) (0aacc7b)
- test-runner: Add
--maxTestRunnerReuse
support (5919484)
- config: exporting a function from stryker.conf.js is deprecated. Please export your config as an object instead, or use a stryker.conf.json file.
Co-authored-by: Nico Jansen jansennico@gmail.com
4.0.0-beta.8 (2020-09-22)
- instrumenter: ignore
declare
syntax (b1faa16)
4.0.0-beta.7 (2020-09-17)
- core: allow skipped tests when matching mutants (#2487) (09eacee), closes #2485
- instrumenter: don't mutate constructor blocks with initialized class properties (#2484) (ca464a3), closes #2474
- instrumenter: place mutants in if statements (#2481) (4df4102), closes #2469
4.0.0-beta.6 (2020-09-10)
4.0.0-beta.5 (2020-09-09)
- jasmine-runner: fix memory leaks (457d807)
- mocha-runner: don't allow custom timeout (#2463) (e90b563)
- mocha-runner: fix memory leaks (23eede2)
- reporters: correctly report avg tests/mutants (#2458) (582e01b)
- mutate: a new default for
mutate
(#2452) (673516d), closes #2384 - typescript: Disable type checking (#2446) (3ff996b), closes #2438
4.0.0-beta.4 (2020-08-29)
- input files: support emojis in file names (#2430) (139f9f3)
- input files: support emojis in file names (#2433) (b5feae2)
- api: rename test_runner2 -> test_runner (#2442) (4d3ae97)
- jest-runner: switch mutants using env (#2416) (cad01ba)
- karma-runner: force bail = true in all cases (ba928a1)
- options: deprecate old stryker options (#2395) (7c637c8)
- reporter-api: support mutation switching (67f1ed5)
- test-runner: add
nrOfTests
metric (0eea448) - wct-runner: drop support for wct (#2440) (7c55424)
- api: Plugin creators should now use
'test_runner'
instead of'test_runner2'
. - wct-runner: The @stryker-mutator/wct-runner package is dropped in Stryker 4.0. Please see #2386 for more details. Feel free to keep using @stryker-mutator/wct-runner@3 or start a community fork. Note that support for the web-component-tester itself is minimal, you might want to consider switching to a different test runner. Stryker still supports Mocha, Jest, Jasmine and Karma.
- reporter-api: The
onMutantTested
andonAllMutantsTested
methods on theReporter
api have changed
4.0.0-beta.3 (2020-08-19)
- core: exit process on error (#2378) (af18a59), closes #2315
- exit prematurely: exit when no tests were executed (#2380) (6885e16)
- instrumenter: support anonymous function names (#2388) (c7d150a), closes #2362
- core: add ability to override file headers (#2363) (430d6d3)
- core: strip comments in sandbox (#2365) (55f27f2), closes #2364
- instrumenter: add support for
.mjs
and.cjs
file formats (#2391) (5ba4c5c) - jest-runner: remove deprecated project types (#2361) (d0aa5c3)
- mocha: deprecate mocha < v6 (#2379) (fee0754)
- test runner api: remove
sandboxFileNames
injectable values (#2369) (92f3bf5), closes #2351
- exit prematurely: Stryker will now exit with exit code 1 when no tests were executed in the initial test run.
- mocha: Mocha@<6 is deprecated and support for it will be removed in Stryker v5
- jest-runner: Project types
react
andreact-ts
has been removed. Please usecreate-react-app
andcreate-react-app-ts
respectively
4.0.0-beta.2 (2020-08-07)
- ArrowFunction mutator: don't mutate () => undefined (#2313) (310145e)
- instrumenter: don't mutate string literals in object properties (#2354) (cd43952)
- mutator: issue with block statement mutator (#2342) (aaa4ff6), closes #2314
- command: Support command test runner with mutation switching (#2345) (59b1cfc)
- jest-runner: support mutation switching (#2350) (9e6e6e0)
4.0.0-beta.1 (2020-07-17)
4.0.0-beta.0 (2020-07-10)
- buildCommand: allow for a single command string in posix (77b6a20)
- instrumenter: don't mutate
require
(963e289) - jasmine-runner: update deprecated api calls (#2250) (b6d6dfd)
- karma-runner: mocha filtering with
/
(#2290) (3918633) - reporter: report event order (#2311) (ceb73a8)
- sandbox: exec build command before symlink (bd25cd6)
- typescript-checker: support empty files (#2310) (284a28c)
- api: add id to Mutant interface (#2255) (cfc9053)
- api: add new test runner api (#2249) (bbbc308)
- api: remove support for options editors (5e56d0e)
- checker: add checker api (#2240) (d463f86), closes #1514 #1980
- core: add support for checker plugins (#2285) (69358e1)
- core: support build command (f71ba87)
- html-parser: add
// [@ts-nocheck](https://github.com/ts-nocheck)
to scripts (8ceff31) - instrumenter: add mutant placers (#2224) (0e05025)
- instrumenter: add parsers (#2222) (3b57ef2)
- instrumenter: add the mutation testing instrumenter (#2212) (197e177)
- instrumenter: add transformers (#2234) (61c8fe6)
- instrumenter: allow override of babel plugins (8758cfd)
- instrumenter: implement
Instrumenter
class (8df9172) - jasmine-runner: implement new test runner api (#2256) (871db8c), closes #2249
- mutator: remove
Mutator
API (3ca89cf) - mutators: add mutators to instrumenter package (#2266) (3b87743)
- sandbox: add ignore header to js files (#2291) (3adde83), closes #2276
- test-framework: remove
TestFramework
API (fe5e200) - transpiler: remove
Transpiler
API (06f668b) - tsconfig: rewrite tsconfig references (#2292) (4ee4950), closes #2276
- typescript-checker: a typescript type checker plugin (#2241) (42adb95), closes /github.com/stryker-mutator/stryker/blob/f44008993a543dc3f38ca99516f56d315fdcb735/packages/typescript/src/transpiler/TranspilingLanguageService.ts#L23 #391
- core: *
--maxConcurrentTestRunners
is now deprecated. Please use--concurrency
instead.
3.3.1 (2020-07-04)
- validation: don't warn about the commandRunner options (2128b9a)
3.3.0 (2020-06-16)
3.2.4 (2020-05-18)
3.2.3 (2020-05-15)
3.2.2 (2020-05-15)
3.2.1 (2020-05-15)
3.2.0 (2020-05-13)
- utils: make sure
instanceof StrykerError
works (a9dea8c) - webpack-transpiler: add support for cache-loader (#2196) (0bcf98b)
- api: Deprecated Config in favor of StrykerOptions (dccdd91)
- api: export the StrykerOptions JSON schema (0bb222d)
- init: add reference to mono schema (#2162) (61953c7)
- Jest: support overriding config (#2197) (d37b7d7), closes #2155
- validation: validate StrykerOptions using JSON schema (5f05665)
- validation: add validation on plugin options (#2158) (d78fe1e)
- validation: hide stacktrace on validation error (8c5ee88)
- validation: warn about unknown stryker config options (#2164) (8c6fd97), closes #2103
3.1.0 (2020-03-29)
3.0.2 (2020-03-13)
- nodejs requirement: set NodeJS requirement to at least Node 10 (8c08059)
3.0.1 (2020-03-12)
3.0.0 (2020-03-11)
- api: allow for different api versions of File (#2042) (9d1fcc1), closes #2025
- mocha: support mutants with "runAllTests" (#2037) (a9da18a), closes #2032
- api: Document StrykerOptions in JSON schema (4bdb7a1)
- config: Allow a
stryker.conf.json
as default config file. (#2092) (2279813) - core: exit code 1 when error in initial run (49c5162)
- Dashboard reporter: upload full html report by default (#2039) (e23dbe1)
- excludedMutations: remove deprecated mutation names (#2027) (6f7bfe1)
- HtmlReporter: include the html reporter in the core package and add it to the default reporters (#2036) (09702d9), closes #1919
- Initializer: Initialize config file as JSON by default (#2093) (e07d953), closes #2000
- jest-runner: support Jest 25 (b45e872), closes #1983
- karma-runner: disable client.clearContext (#2048) (27c0787)
- karma-runner: use ChromeHeadless as the default browser (#2035) (18bf9b6)
- promisified fs: use node 10 promisified functions (#2028) (1c57d8f)
- react: change react to create-react-app (#1978) (7f34f28)
- Reporter.onScoreCalculated: remove deprecated onScoreCalculatedevent (#2026) (9fa4175)
- core: Stryker now exists with exitCode
1
if an error of any kind occurs. - karma-runner: The @stryker-mutator/karma-runner will now use ChromeHeadless by default (instead of PhantomJS)
- Reporter.onScoreCalculated: Please use the
onMutationTestReportReady
event and themutation-testing-metrics
npm package to calculate the mutation testing report metrics.
This
class MyReporter {
onScoreCalculated(scoreResult) {
// => do stuff with score result
}
}
Becomes this:
import { calculateMetrics } from 'mutation-testing-metrics';
class MyReporter {
onMutationTestingReportReady(report) {
const reportMetrics = calculateMetrics(report.files);
// => do stuff with report metrics
}
}
- HtmlReporter: the
html
reporter is now enabled by default. If you don't want to use it, be sure to override thereporters
configuration option.
{
"reporters": ["progress", "clear-text"]
}
- Dashboard reporter: The dashboard reporter will now upload a full report by default. If you don't want that, you can disable it with:
{
"dashboard": {
"reportType": "mutationScore"
}
}
- excludedMutations: removes auto-fix for the old names of mutations.
Almost every mutator has been renamed and/or split. Stryker will warn you about any deprecated mutator names in the mutator.excludedMutations
section of your config.
To migrate, please run stryker to see if your project is affected. If this is the case, please take a look at the mutator types on the handbook (see above).
These are the changes:
Old mutation | New mutation(s) |
---|---|
ArrayLiteral | ArrayDeclaration |
ArrayNewExpression | ArrayDeclaration |
BinaryExpression | ArithmeticOperator, EqualityOperator, LogicalOperator |
Block | BlockStatement |
BooleanSubstitution | BooleanLiteral |
DoStatement | ConditionalExpression |
ForStatement | ConditionalExpression |
IfStatement | ConditionalExpression |
PrefixUnaryExpression | UnaryOperator, UpdateOperator, BooleanLiteral |
PostfixUnaryExpression | UpdateOperator |
SwitchCase | ConditionalExpression |
WhileStatement | ConditionalExpression |
Due to the migration, some new mutations were added to the javascript mutator.
- The mutation ArrayDeclaration will now mutate
new Array()
tonew Array([])
- The mutation ArrayDeclaration will now mutate
[]
to["Stryker was here"]
These mutations were already performed by the typescript mutator.
- promisified fs: removed fsAsPromised from @stryker-mutator/util
2.5.0 (2020-01-12)
- .gitignore: add Stryker patterns to .gitignore file during initialization (#1848) (854aee0)
- arrow mutations: add arrow mutations and refactor JavaScript mutators (#1898) (898d38b)
- TypeScript mutator: mutate Array constructor calls without the new keyword (#1903) (aecd944), closes #1902
2.4.0 (2019-11-24)
- dashboard-reporter: add github actions ci provider (#1869) (b38b30d)
- excludedMutations: Implement new naming of mutators (#1855) (c9b3bcb)
- json config: support json-file config (#1853) (49495ef)
- progress-reporter: improve reported progress ux (d7a6f88)
- report: support upload of full report to dashboard (#1783) (fbb8102)
2.3.0 (2019-11-13)
- core: undefined reference error in coverage recording (0a68c9c)
- perf/angular-cli: upgrade to latest angular version and fix bugs (#1842) (4f81550)
2.2.1 (2019-11-06)
Note: Version bump only for package stryker-parent
2.2.0 (2019-11-06)
- edge cases, duplication, log output (#1720) (7f42d34)
- jest-runner: improve error message for missing react-scripts (#1694) (313e3bf)
- tempDir: don't resolve temp dir as input file (#1710) (bbdd02a)
- javascript-mutator: allow to override babel plugins (#1764) (ddb3d60)
- mutant-matcher: lower memory usage (#1794) (16294e5)
- progress-reporter: show timed out mutant count (#1818) (067df6d)
- typescript: do not mutate
interfaces
(#1662) (86b2ffe)
2.1.0 (2019-09-08)
- mocha: support mocha 6.2 (feddcf1)
2.0.2 (2019-07-11)
- child process: cleanup after dispose (#1636) (3fd5db9)
- child process proxy: OutOfMemory detection (#1635) (4324d9f)
- dispose: fix race condition in dispose action (124ef6a), closes #1542
2.0.1 (2019-07-02)
2.0.0 (2019-05-17)
- deps: update source-map dep to current major release (45fa0f8)
- es2017: output es2017 code (#1518) (e85561e)
- formatting: remove dependency on prettier (#1552) (24543d3), closes #1261
- mocha: deprecate mocha version 5 and below (#1529) (1c55350)
- node 6: drop support for node 6 (#1517) (801d7cd)
- es2017: changed TypeScript output target from es5 to es2017. This requires a NodeJS runtime of version 8 or higher.
- node 6: support for Node 6 has been dropped. Node 8 or higher is now required.
- mocha: the use of mocha version 5 and below is deprecated. Please upgrade to mocha 6 or above. See their changelog for more information about upgrading.
1.3.1 (2019-04-26)
1.3.0 (2019-04-24)
- dispose: clean up child processes in alternative flows (#1520) (31ee085)
- html: load report json from a js file (#1485) (9bee2a7), closes #1482
- javascript-mutator: allow decorators (#1474) (f0dd430)
- mocha 6: support all config formats (#1511) (baa374d)
1.2.0 (2019-04-02)
- deps: add mutation-testing-report-schema (3d40d91)
- typescript: don't mutate
declare
statements (#1458) (aae3afe)
- babel-transpiler: support .js babel config files (#1422) (9e321f0)
- html-reporter: use mutation-testing-elements (2f6df38)
- peer-dep: update stryker core to v1.2 (d798b19)
- reporter: add
mutationReportReady
event (044158d) - reporter: implement
mutationTestReport
(16ba76b)
1.1.1 (2019-03-21)
1.1.0 (2019-03-04)
- duplicate files: make transpile always result in unique file names (#1405) (a3018d2)
- presets: install v1.x dependencies instead of v0.x (#1434) (7edda46)