Background
The org-wide testing standard (open-lobotomy/.github/docs/TESTING.md) moved off coverlet.msbuild build-time instrumentation and onto the coverlet.collector VSTest XPlat Code Coverage data collector (v1.2.0 of the standard, 2026-05-07). The new approach removes the --no-build footgun, plays cleaner with parallel test runs, and aligns with Microsoft's documented modern path.
What needs to change in this repo
-
Directory.Build.props — drop the <PackageReference Include="coverlet.msbuild"> block from the IsTestProject ItemGroup. Keep coverlet.collector.
-
Directory.Packages.props — once this repo's OpenLobotomy.Standards pin is bumped to a version that no longer adds coverlet.msbuild as a GlobalPackageReference, remove the coverlet.msbuild PackageVersion line. Until then keep it pinned (the transitive add still needs a managed version).
-
coverlet.runsettings — add at the repo root, selecting OpenCover format so the threshold checker can parse module totals:
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="XPlat code coverage">
<Configuration>
<Format>opencover</Format>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
-
CI yaml — if the repo invokes dotnet test directly with /p:CollectCoverage=true, switch to --collect:"XPlat Code Coverage" --settings coverlet.runsettings. If it uses dotnet ci --check (via the org's reusable workflow or directly), no change is needed — the tool picks up the new path once the repo bumps to the new OpenLobotomy.Tooling version.
When to land
After OpenLobotomy.Tooling republishes with the collector path (see open-lobotomy/open-lobotomy-tooling). Until then the changes are inert because the toolchain still routes through msbuild flags.
Acceptance
Background
The org-wide testing standard (open-lobotomy/.github/docs/TESTING.md) moved off
coverlet.msbuildbuild-time instrumentation and onto thecoverlet.collectorVSTest XPlat Code Coverage data collector (v1.2.0 of the standard, 2026-05-07). The new approach removes the--no-buildfootgun, plays cleaner with parallel test runs, and aligns with Microsoft's documented modern path.What needs to change in this repo
Directory.Build.props— drop the<PackageReference Include="coverlet.msbuild">block from theIsTestProjectItemGroup. Keepcoverlet.collector.Directory.Packages.props— once this repo'sOpenLobotomy.Standardspin is bumped to a version that no longer addscoverlet.msbuildas aGlobalPackageReference, remove thecoverlet.msbuildPackageVersionline. Until then keep it pinned (the transitive add still needs a managed version).coverlet.runsettings— add at the repo root, selecting OpenCover format so the threshold checker can parse module totals:CI yaml — if the repo invokes
dotnet testdirectly with/p:CollectCoverage=true, switch to--collect:"XPlat Code Coverage" --settings coverlet.runsettings. If it usesdotnet ci --check(via the org's reusable workflow or directly), no change is needed — the tool picks up the new path once the repo bumps to the newOpenLobotomy.Toolingversion.When to land
After
OpenLobotomy.Toolingrepublishes with the collector path (see open-lobotomy/open-lobotomy-tooling). Until then the changes are inert because the toolchain still routes through msbuild flags.Acceptance
--collect:"XPlat Code Coverage"(no/p:CollectCoverage)**/TestResults/<guid>/coverage.opencover.xml