All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
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)