Skip to content

Merge vs-extension-testing into Roslyn#81565

Merged
dibarbet merged 1693 commits intomainfrom
dev/dibarbet/vs-extension-testing
Dec 16, 2025
Merged

Merge vs-extension-testing into Roslyn#81565
dibarbet merged 1693 commits intomainfrom
dev/dibarbet/vs-extension-testing

Conversation

@dibarbet
Copy link
Member

@dibarbet dibarbet commented Dec 5, 2025

Migrates https://github.com/microsoft/vs-extension-testing into Roslyn. Reduces infrastructure pain for a repo we own that is majorly used just by Roslyn / Razor.

This does not enable CI to run integration tests on dev18, will tackle that in a followup. However I did verify that at least some of the tests pass on dev18 with this locally.

Support for testing VS versions below dev18 has also been removed. Older versions of the packages can be used if testing old VS versions is required.

Should be reviewed starting at 6220e53
Everything else is the history from vs-extension-testing.

AArnott and others added 30 commits November 12, 2024 16:51
Compile with C# language version 13
Fix to avoid deprecation warning
Workaround github's protections for workflow changes in GitHub Actions
Bumps [docfx](https://github.com/dotnet/docfx) from 2.77.0 to 2.78.0.
- [Release notes](https://github.com/dotnet/docfx/releases)
- [Changelog](https://github.com/dotnet/docfx/blob/main/RELEASENOTE.md)
- [Commits](dotnet/docfx@v2.77.0...v2.78.0)

---
updated-dependencies:
- dependency-name: docfx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
It had a quote in the wrong place.
Bumps [docfx](https://github.com/dotnet/docfx) from 2.78.0 to 2.78.1.
- [Release notes](https://github.com/dotnet/docfx/releases)
- [Changelog](https://github.com/dotnet/docfx/blob/main/RELEASENOTE.md)
- [Commits](dotnet/docfx@v2.78.0...2.78.1)

---
updated-dependencies:
- dependency-name: docfx
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.11.1 to 17.12.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](microsoft/vstest@v17.11.1...v17.12.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Use `-LiteralPath` instead of `-Path` in ps1 scripts
PolySharp is far more exhaustive in the polyfills than Nullable is.
Add release GitHub workflow and improve others
Copy link
Member

@jasonmalinowski jasonmalinowski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome! Obviously there's more cleanup to do; comments here are limited to either where I think something might have been missed in how it integrated into this repository, or places where the restriction to Dev18 only might have missed the right place to update.

Comment on lines +312 to +314
<!--
vs-extension-testing
-->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this comment intending this is only for that part of the repository? If so, can we or should we have a nested Directory.Packages.props for it or something?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(OK with no changes here, I just wasn't quite sure if this comment has specific significance to follow later)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh we just had other sections like roslyn-analyzers. just indicates where these were used. can remove.

Comment on lines +37 to +39
# The integration test framework uses a VSIX as an embedded resource in this dll.
# The VSIX build is not deterministic (for example the catalog.json contains a randomly generated identifier for the install location).
"Microsoft.VisualStudio.Extensibility.Testing.Xunit.dll"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this worth having a tracking bug for this? Or is this mechanism something we'd eventually get rid of in some other way? I'm torn between "we could eventually make this work" and "this will never work, this is totally fine to have the exception".

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

imho this is fine to have an exception. the vsix generation is non-deterministic because (among other things) a unique install path is written into the vsix. It would be up the VSSDK if they want vsix generation to be deterministic.


<ItemGroup>
<!-- This needs to be a package reference to avoid attempting to use a newer compiler version than either the CLI or IDE has. -->
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" />
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this need to be a project reference now? Or doesn't matter?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It cannot be a project reference, otherwise the source generator will reference a version of the compiler that is not available in the CLI or VS.

@dibarbet
Copy link
Member Author

/azp run roslyn-integration-CI

@dibarbet
Copy link
Member Author

/azp run roslyn-CI

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@dibarbet
Copy link
Member Author

Microsoft.VisualStudio.Extensibility.Testing.Xunit.IntegrationTests_2 PASSED 00:00:03.0132922
Microsoft.VisualStudio.LanguageServices.New.IntegrationTests_3 PASSED 00:00:26.7677071
Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests_0 PASSED 00:09:34.3417667
Microsoft.CodeAnalysis.Workspaces.MSBuild.UnitTests_1 PASSED 00:11:01.3490488

technically the tests were skipped because we're still on dev17, but confirmed we're attempting to run the correct set

@dibarbet dibarbet merged commit 001690a into main Dec 16, 2025
29 checks passed
@dotnet-policy-service dotnet-policy-service bot added this to the Next milestone Dec 16, 2025
@davidwengier davidwengier modified the milestones: Next, 18.3 Jan 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants