Skip to content

Extract bootstrap/E2E test infrastructure into new EndToEndTestSupport shared library#13294

Draft
Copilot wants to merge 2 commits intomainfrom
copilot/create-e2e-test-support-library
Draft

Extract bootstrap/E2E test infrastructure into new EndToEndTestSupport shared library#13294
Copilot wants to merge 2 commits intomainfrom
copilot/create-e2e-test-support-library

Conversation

Copy link
Contributor

Copilot AI commented Feb 25, 2026

Context

Bootstrap-specific test infrastructure was coupled to UnitTests.Shared, which mixed general test helpers with E2E/bootstrap concerns.
This refactor introduces a dedicated shared library for bootstrap/E2E support and updates E2E callers to consume it directly.

Changes Made

  • New shared library for bootstrap/E2E

    • Added src/EndToEndTestSupport/Microsoft.Build.EndToEndTestSupport.csproj.
    • Moved bootstrap wiring into this project:
      • BootStrapMsBuild.props import
      • MSBuild.Bootstrap build-order dependency
      • assembly attributes for bootstrap/artifacts paths
  • Moved bootstrap-owned types out of UnitTests.Shared

    • Moved:
      • BootstrapLocationAttribute
      • ArtifactsLocationAttribute
    • Added EndToEndTestUtilities with:
      • ExecBootstrapedMSBuild(...)
      • bootstrap path/version properties previously exposed via RunnerUtilities
  • Narrowed UnitTests.Shared scope

    • RunnerUtilities now retains only non-bootstrap process helpers (ExecMSBuild, RunProcessAndGetOutput, etc.).
    • Removed bootstrap-specific members from RunnerUtilities.
  • Updated E2E callers + references

    • Added EndToEndTestSupport project references to 5 test projects:
      • Build.UnitTests
      • BuildCheck.UnitTests
      • MSBuild.UnitTests
      • Tasks.UnitTests
      • Build.OM.UnitTests
    • Updated call sites from:
      RunnerUtilities.ExecBootstrapedMSBuild(...)
      to:
      EndToEndTestUtilities.ExecBootstrapedMSBuild(...)

Testing

Existing E2E test projects were updated to compile and run against EndToEndTestUtilities; no new test infrastructure patterns were introduced.

Notes

This keeps bootstrap/E2E ownership centralized and leaves UnitTests.Shared focused on general-purpose test infrastructure.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

@dotnet-policy-service
Copy link
Contributor

Hello @@copilot, I noticed that you’re changing an .swr file or any file under src/Package/MSBuild.VSSetup.. Please make sure to validate this change by an experimental VS insertion. This is accomplished by pushing to an exp/* branch, which requires write permissions to this repo.

Co-authored-by: rainersigwald <3347530+rainersigwald@users.noreply.github.com>
Copilot AI changed the title [WIP] Create shared test library for E2E infrastructure Extract bootstrap/E2E test infrastructure into new EndToEndTestSupport shared library Feb 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants