-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstryker4s.conf
More file actions
56 lines (51 loc) · 2.81 KB
/
Copy pathstryker4s.conf
File metadata and controls
56 lines (51 loc) · 2.81 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
stryker4s {
# --- Mutation testing (sbt plugin) --------------------------------------------------------------
# Run from the repo root:
# scripts/run-stryker.sh --module analysis <name>
# scripts/run-stryker.sh --module all <name>
# or directly:
# sbt -Dstryker=true "analysis/stryker"
# (the -Dstryker flag loads the local-only sbt-stryker4s snapshot; see project/plugins.sbt)
# The plugin auto-derives the Scala dialect from the build, instruments coverage, and honours
# test-filter (unlike the command-runner). See docs/project/development.md ("Mutation testing").
# Direct sbt runs default to the analysis engine. scripts/run-stryker.sh and CI override mutate
# and test-filter per module through Stryker4s CLI options, so the same root config can cover
# core, analysis, and mcp without copying temporary config files.
# Paths are relative to the stryker base-dir = the selected sbt sub-project's baseDirectory.
mutate = [
"src/main/scala/**/*.scala"
]
# Run mutants ONLY against suites with FIXED inputs, so a killed/surviving mutant reflects the
# mutation and nothing else:
# CompatSuite — drives the full Analyzer surface against committed golden SemanticDB
# (analysis/src/test/resources/compat/scala-{2.13,3}); immune to source mutation.
# ModelsSuite — pure upickle round-trips.
# Deliberately excluded: AnalyzerSuite / AnalyzerStructureSuite / SemanticIndexSuite dogfood the
# repo's own live SemanticDB (self-reference); AnalyzerPcSuite / the pc suite fork a heavy
# presentation compiler (too slow under mutation).
test-filter = [
"com.github.mercurievv.scalasemantic.analysis.CompatSuite",
"com.github.mercurievv.scalasemantic.model.ModelsSuite",
"com.github.mercurievv.scalasemantic.model.InputTypesSuite",
"com.github.mercurievv.scalasemantic.analysis.AnalyzerHelpersSuite",
"com.github.mercurievv.scalasemantic.analysis.AnalyzerCoreSuite",
"com.github.mercurievv.scalasemantic.analysis.graph.StructureMetricsSuite",
"com.github.mercurievv.scalasemantic.analysis.AnalyzerToolsSuite",
"com.github.mercurievv.scalasemantic.analysis.DuplicationAnalyzerSuite"
]
# html → browsable report (stryker4s-report/<ts>/index.html); json → machine-readable report for
# scripts/mutation-summary.sh and CI comments/artifacts.
reporters = ["html", "json"]
thresholds {
high = 80
low = 60
# Rollout grace period: do not hard-fail the Stryker task on mutation score yet. CI posts the
# advisory summary and uploads the HTML report; raise this with MUTATION_BREAK_THRESHOLD after
# the first stable nightly/label-gated runs establish a per-module baseline.
break = 0
}
# Surface the test-runner's stdout/stderr so an initial-test-run failure shows the real exception.
debug {
log-test-runner-stdout = true
}
}