fix(acl): keep the integration tests out of Stryker's solution (closes #174) (#188)
CI / k8s (push) Successful in 10s
CI / lint (push) Successful in 1m53s
CI / build (push) Successful in 1m22s
CI / unit (push) Successful in 1m35s
CI / frontend (push) Successful in 2m46s
Deploy to Talos / deploy (push) Successful in 2m37s
CI / mutation (push) Successful in 4m56s
CI / verify-stack (push) Canceled after 9m56s

closes #174

Took fix option 3, cut down: removed `Acl.IntegrationTests` from `services/acl/Acl.slnx`. Only Stryker reads that file. `make build`, `make lint` and `make unit` use the root `register-referentie.slnx`, and `Dockerfile.integration` targets the csproj directly, so nothing else changes. A comment in the slnx and a note in `docs/runbooks/ci.md` explain why the project is left out.

**Verified locally** (`cd services/acl && dotnet stryker`):
- `Number of tests found: 86` (was 94); the `8 tests are failing` warning is gone.
- Final score **90.45 %**, the same as before. Tests that fail their initial run were never used to kill mutants, so the number was not depressed, only unverified. Re-baselined from this clean run: `break: 90` stays (§5, never lower).

No test-first commit: this changes build config only. The check is the Stryker initial-run log above.

🤖 Generated with [Claude Code](https://claude.com/claude-code)Reviewed-on: #188
This commit was merged in pull request #188.
This commit is contained in:
not
2026-09-28 12:56:10 +00:00
parent 1489f68796
commit 733ba71173
2 changed files with 6 additions and 1 deletions
+3
View File
@@ -60,6 +60,9 @@ make mutation # dotnet tool restore + dotnet stryker on the ACL
Config lives in [`services/acl/stryker-config.json`](../../services/acl/stryker-config.json). Config lives in [`services/acl/stryker-config.json`](../../services/acl/stryker-config.json).
It runs in **solution mode** against `Acl.slnx`, mutating the two projects under test It runs in **solution mode** against `Acl.slnx`, mutating the two projects under test
(`Acl.Application`, `Acl.Infrastructure`); `Acl.Api` has no tests and is skipped. (`Acl.Application`, `Acl.Infrastructure`); `Acl.Api` has no tests and is skipped.
`Acl.slnx` leaves out `Acl.IntegrationTests`: it needs a live OpenZaak, and Stryker
runs every test project in the solution, so keeping it in makes 8 tests fail in the
initial run (#174).
**Baseline (the ratchet):** the ACL is the first service with branching logic, so it **Baseline (the ratchet):** the ACL is the first service with branching logic, so it
sets the repo-wide baseline. Observed score **95%**; enforced `break` threshold **90%** sets the repo-wide baseline. Observed score **95%**; enforced `break` threshold **90%**
+3 -1
View File
@@ -1,7 +1,9 @@
<Solution> <Solution>
<!-- Stryker-only. Acl.IntegrationTests is left out on purpose: it needs a live
OpenZaak, so in the mutation job it fails its initial run (#174). The root
register-referentie.slnx still builds and lints it. -->
<Project Path="Acl.Api/Acl.Api.csproj" /> <Project Path="Acl.Api/Acl.Api.csproj" />
<Project Path="Acl.Application/Acl.Application.csproj" /> <Project Path="Acl.Application/Acl.Application.csproj" />
<Project Path="Acl.Infrastructure/Acl.Infrastructure.csproj" /> <Project Path="Acl.Infrastructure/Acl.Infrastructure.csproj" />
<Project Path="Acl.IntegrationTests/Acl.IntegrationTests.csproj" />
<Project Path="Acl.Tests/Acl.Tests.csproj" /> <Project Path="Acl.Tests/Acl.Tests.csproj" />
</Solution> </Solution>