forked from n8n-io/n8n
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstryker.config.mjs
More file actions
33 lines (33 loc) · 1.52 KB
/
Copy pathstryker.config.mjs
File metadata and controls
33 lines (33 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/** @type {import('@stryker-mutator/api/core').PartialStrykerOptions} */
export default {
packageManager: 'pnpm',
testRunner: 'vitest',
plugins: ['@stryker-mutator/vitest-runner'],
// Use the Stryker-specific vitest config (vm-engine only) — see
// vitest.stryker.config.ts for the rationale.
vitest: {
configFile: 'vitest.stryker.config.ts',
},
// No `progress` reporter: these runs are non-interactive, nobody watches the stream.
reporters: ['clear-text', 'json'],
coverageAnalysis: 'perTest',
// Cache mutant results so the property-testing edit/re-run loop only re-tests
// mutants whose covering tests changed. Keep the cache under the gitignored reports/mutation/.
incremental: true,
incrementalFile: 'reports/mutation/stryker-incremental.json',
// Skip module-level (static) mutants — each forces a full re-instrument.
ignoreStatic: true,
// Default empty — the `mutate` npm script always passes --mutate <file>.
// Direct invocation with no --mutate will fail fast (allowEmpty: false).
mutate: [],
jsonReporter: { fileName: 'reports/mutation/raw.json' },
// Cap low: a string/utils mutant running 15s+ is a spinning loop-condition mutant; fail it fast.
timeoutMS: 15_000,
// Each Stryker worker spawns vitest with one project (vm-engine, via
// vitest.stryker.config.ts). Default 4 is fine on CI runners; lower
// locally if you hit OOM during the initial dry run via
// `STRYKER_CONCURRENCY=1`.
concurrency: Number(process.env.STRYKER_CONCURRENCY ?? 4),
tempDirName: '.stryker-tmp',
cleanTempDir: true,
};