[release/11.0.1xx-preview7] Add MTP artifact post-processing to dotnet test - #55453
Merged
Evangelink merged 2 commits intoJul 24, 2026
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a56f3957-e35c-47df-bad9-c5f342ee302a
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: a56f3957-e35c-47df-bad9-c5f342ee302a
|
Azure Pipelines: Successfully started running 1 pipeline(s). 2 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Evangelink
enabled auto-merge
July 24, 2026 15:46
0101
approved these changes
Jul 24, 2026
Evangelink
added a commit
to microsoft/testfx
that referenced
this pull request
Jul 28, 2026
…orts Bumps global.json (tools.dotnet + sdk.version) to 11.0.100-preview.7.26376.106. That build carries the SDK-side artifact post-processing orchestration (dotnet/sdk#55419, backported to release/11.0.1xx-preview7 as dotnet/sdk#55453), which flowed into the VMR via '[release/11.0.1xx-preview7] Source code updates from dotnet/sdk' (dotnet/dotnet#7944), so RFC 018 phase 2 now actually runs for this repo's multi-module 'dotnet test' invocations. Enabling it surfaced a problem that is not specific to this repo. The SDK points the processor's output directory at the run's --results-directory, which already holds the per-module reports the merge consumed, so TrxArtifactPostProcessor was writing the merged report as a sibling of its own inputs. Collecting a results directory with a non-recursive '*.trx' glob is near-universal (Arcade's 'Publish TRX Test Results' step, the PublishTestResults@2 defaults, typical ReportGenerator setups), and every such consumer would ingest both the merged report and the reports it summarizes, double-counting every test. TrxArtifactPostProcessor now writes to '<outputDirectory>/merged/', which keeps the merged report out of those globs by construction instead of asking each consumer to special-case the merged file name. Nesting also keeps the report co-located with its attachments, which a CI-side move could not. MergeToFileAsync derives the attachment deployment root from the output path and records it in the TRX as a relative runDeploymentRoot, so the report and its attachment tree have to stay in the same directory for those references to resolve; writing the report into the subdirectory moves both together. Adds a regression test covering that, and asserting nothing of the merged report is left in the results-directory root. Verified end to end on this SDK: two MTP modules (23 + 2 tests) run through 'dotnet test' with a shared --results-directory produce 'merged/merged-<runId>.trx' with total=25, reported back over the existing pipe as an out-of-process file artifact, with the per-module reports left intact at the root and nothing else matching a non-recursive '*.trx' glob there. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4a6c06b2-7dcb-407e-bb9e-ca0c8302fa93
Evangelink
added a commit
to microsoft/testfx
that referenced
this pull request
Jul 28, 2026
…orts Bumps global.json (tools.dotnet + sdk.version) to 11.0.100-preview.7.26376.106. That build carries the SDK-side artifact post-processing orchestration (dotnet/sdk#55419, backported to release/11.0.1xx-preview7 as dotnet/sdk#55453), which flowed into the VMR via '[release/11.0.1xx-preview7] Source code updates from dotnet/sdk' (dotnet/dotnet#7944), so RFC 018 phase 2 now actually runs for this repo's multi-module 'dotnet test' invocations. Enabling it surfaced a problem that is not specific to this repo. The SDK points the processor's output directory at the run's --results-directory, which already holds the per-module reports the merge consumed, so TrxArtifactPostProcessor was writing the merged report as a sibling of its own inputs. Collecting a results directory with a non-recursive '*.trx' glob is near-universal (Arcade's 'Publish TRX Test Results' step, the PublishTestResults@2 defaults, typical ReportGenerator setups), and every such consumer would ingest both the merged report and the reports it summarizes, double-counting every test. TrxArtifactPostProcessor now writes to '<outputDirectory>/merged/', which keeps the merged report out of those globs by construction instead of asking each consumer to special-case the merged file name. Nesting also keeps the report co-located with its attachments, which a CI-side move could not. MergeToFileAsync derives the attachment deployment root from the output path and records it in the TRX as a relative runDeploymentRoot, so the report and its attachment tree have to stay in the same directory for those references to resolve; writing the report into the subdirectory moves both together. Adds a regression test covering that, and asserting nothing of the merged report is left in the results-directory root. Verified end to end on this SDK: two MTP modules (23 + 2 tests) run through 'dotnet test' with a shared --results-directory produce 'merged/merged-<runId>.trx' with total=25, reported back over the existing pipe as an out-of-process file artifact, with the per-module reports left intact at the root and nothing else matching a non-recursive '*.trx' glob there. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 4a6c06b2-7dcb-407e-bb9e-ca0c8302fa93
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.
Backport of #55419 to release/11.0.1xx-preview7
/cc @Evangelink