fix(ci): forward coverlet.MTP coverage args after -- so coverage is actually collected - #80
Closed
philippemnoel wants to merge 1 commit into
Closed
fix(ci): forward coverlet.MTP coverage args after -- so coverage is actually collected#80philippemnoel wants to merge 1 commit into
-- so coverage is actually collected#80philippemnoel wants to merge 1 commit into
Conversation
The Test step passed --coverlet and --coverlet-output-format as top-level dotnet test arguments. coverlet.MTP is a Microsoft.Testing.Platform (MTP) extension (this project uses TUnit + coverlet.MTP, with dotnet test running in MTP mode via global.json), so its options must be forwarded to the test application after a -- separator. Passed at the top level they are subject to dotnet test's own parser and effectively ignored, so no coverage was ever produced and the Codecov upload was a no-op. Move the coverlet flags after -- in both ci.yml and schema-compat.yml. Reports continue to be written into --results-directory, which the Codecov step already scans.
philippemnoel
requested review from
isaacvando,
mdashti,
rebasedming and
stuhood
as code owners
June 15, 2026 01:41
Collaborator
|
This looks unnecessary to me. We already have up-to date coverage information: https://app.codecov.io/gh/paradedb/efcore-paradedb |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
.github/workflows/ci.yml(Test step) and.github/workflows/schema-compat.yml(Test step) passed coverage flags as top-leveldotnet testarguments:This project's test suite uses TUnit +
coverlet.MTP, i.e. it runs on Microsoft.Testing.Platform (MTP).--coverlet/--coverlet-output-formatare options provided by thecoverlet.MTPextension, not bydotnet testitself. When placed at the top level they are handled bydotnet test's own argument parser (not forwarded reliably to the test application), so coverage was never collected and the Codecov upload step was a no-op — no cobertura report was ever produced in--results-directory.Root cause / how I verified it
coverlet.MTPv10.0.1 — declared inDirectory.Packages.propsand referenced intests/ParadeDB.EntityFrameworkCore.Tests.csproj. (Notcoverlet.collectorand notcoverlet.msbuild, so--collect:"XPlat Code Coverage"and msbuild/p:CollectCoveragewould both be wrong here.)<OutputType>Exe</OutputType>→ Microsoft.Testing.Platform.global.jsonsets"test": { "runner": "Microsoft.Testing.Platform" }, sodotnet testruns in MTP mode on the .NET 10 SDK.dotnet testMTP docs, arguments meant for the test application / MTP extensions are forwarded after a--separator (dotnet test -- <app args>). Using the separator also avoids the documented parser quirk where unrecognized tokens interleaved with optionsdotnet testunderstands (--results-directory,--framework) change meaning.--coverletand--coverlet-output-format coberturaare correct, and coverage reports are written into the--results-directoryfolder with a timestamped filename (e.g.coverage.cobertura.<timestamp>.xml). There is no separate output-path flag.Fix
Forward the coverlet flags after
--in both workflows (no other changes):The Codecov upload step already points
directory:at the same--results-directory, and since coverlet emits a timestamped filename there, scanning the directory (rather than a hardcoded filename) remains the correct approach — no change needed to the upload step.Validation
python3 -c "import yaml; ...").coverage.cobertura.*.xmlis produced underTestResults/<framework>/and that the Codecov upload picks it up (theverbose: trueCodecov step output will show the discovered file).Filed from a CI audit of bogus
dotnet testflags.