feat(test-sdk): expose SDK-owned coverage settings path - #34
Merged
Conversation
29 tasks
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.
Summary
External Microsoft Testing Platform module runners can now resolve the Test SDK's packaged coverage denominator policy instead of maintaining a consumer-owned copy. Project-evaluated runs use the same public
HeadlessCoverageSettingsPathproperty when the SDK injects--coverage-settings, so both execution modes share one policy owner.The policy keeps every intentional generated-code, migration, and test-assembly exclusion and adds a cross-platform
obj/**/generated/**defense for compiler and source-generator output with unconventional filenames. Semantic package tests prove the new rule does not exclude ordinary handwritten source or partial classes.Consumption contract
global.jsonSDK, additional-SDK, andPackageReferenceconsumption.--coverageand exactly one property-backed--coverage-settingsargument whenEnableCodeCoverage=true.--test-modulescannot receive SDK-injected project arguments and shows external tooling how to query, validate, quote, and pass the SDK-owned path.Validation
0.2.2-preview.0.5packages produced.Headless.NET.Sdk.Testarchive inspected:build/SupportTestProjects.targetsandconfigurations/default.runsettingsare present, with the public property, property-backed argument, and approved exclusions.Follow-up boundary
The downstream framework module runner still needs to resolve this property, retain its Cobertura regression verifier, and remove its duplicated
eng/coverage.runsettings. This PR does not modify Headless Framework, bump an SDK version, publish packages, release, or merge.Related: xshaheen/headless-framework#814
Post-Deploy Monitoring & Validation
There is no production runtime deployment. For the first downstream adoption, query the property after restore and require a fully qualified existing file before starting the module runner. A missing/empty path or a Cobertura denominator change is the regression signal; the SDK and framework PR authors own that adoption check.