Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
a670c54
Add MSTest reflection source generator (issue #1837)
Evangelink May 25, 2026
90b31c8
Address review comments on source-gen reflection PR
Evangelink May 28, 2026
8578ce3
Merge remote-tracking branch 'origin/main' into dev/amauryleve/source…
Copilot Jun 1, 2026
2df74eb
Fix NativeAOT discovery and trim/AOT warnings for source-generated re…
Evangelink Jun 1, 2026
1b8ad38
Skip generic test methods in ReflectionMetadataGenerator
Evangelink Jun 1, 2026
0ec3ecf
Merge remote-tracking branch 'origin/main' into dev/amauryleve/source…
Jun 3, 2026
d6c03cd
Address PR feedback: expand ReflectionMetadataGenerator tests and cov…
Jun 3, 2026
e8a3e60
Address PR feedback: reduce public API, fix fallbacks, add MSTEST0069…
Jun 3, 2026
ed5b24a
Merge remote-tracking branch 'origin/main' into dev/amauryleve/source…
Jun 3, 2026
b16f25f
Collapse source-gen public API to single ReflectionMetadataHook.Regis…
Jun 3, 2026
2959f75
MSTEST0069: filter out open-generic and file-local types
Jun 3, 2026
e9a5379
Hide ReflectionMetadataHook from IntelliSense via [EditorBrowsable(Ne…
Jun 3, 2026
8e9eae7
Avoid boxing in EquatableArray<T>.GetEnumerator
Jun 3, 2026
cd2e29a
Remove unused SourceGeneratorToggle
Evangelink Jun 4, 2026
c896beb
Document source generator design, root abstract base members, and add…
Evangelink Jun 4, 2026
a034332
Address review feedback on PR #8586
Jun 4, 2026
1a086da
Escape <link> placeholder in design.md to satisfy MD033
Jun 5, 2026
8fac22c
Merge branch 'main' into dev/amauryleve/sourcegen-reflection-issue-1837
Evangelink Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The codebase ships several distinct (but related) products. Knowing which produc

- `src/Platform/Microsoft.Testing.Platform` — Microsoft.Testing.Platform (MTP), a lightweight, in-process test host that replaces VSTest. Most other folders under `src/Platform/` are MTP extensions (`TrxReport`, `CrashDump`, `HangDump`, `HotReload`, `Retry`, `Telemetry`, `HtmlReport`, `AzureDevOpsReport`, `MSBuild`, `VSTestBridge`, …).
- `src/TestFramework` — MSTest itself: the public `Microsoft.VisualStudio.TestTools.UnitTesting` API (attributes, `Assert`, `TestContext`, …) plus `TestFramework.Extensions`.
- `src/Adapter` — bridges MSTest to test hosts: `MSTest.TestAdapter` (VSTest adapter), `MSTestAdapter.PlatformServices` (platform-services abstraction shared by both hosts), and `MSTest.Engine` (MTP-native execution engine used by source-generated tests).
- `src/Adapter` — bridges MSTest to test hosts: `MSTest.TestAdapter` (VSTest adapter) and `MSTestAdapter.PlatformServices` (platform-services abstraction shared by both hosts).
- `src/Analyzers` — Roslyn analyzers and code fixes shipped as `MSTest.Analyzers`.
- `src/Package/MSTest.Sdk` — the MSBuild project SDK that wires the pieces together for consumers.
- `test/UnitTests/<Project>.UnitTests` — fast unit tests for each project.
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/add-tests.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ Analyze the pull request diff to identify source files that were added or modifi
- `src/TestFramework/` → `test/UnitTests/TestFramework.UnitTests/`
- `src/Adapter/MSTest.TestAdapter/` → `test/UnitTests/MSTestAdapter.UnitTests/`
- `src/Adapter/MSTestAdapter.PlatformServices/` → `test/UnitTests/MSTestAdapter.PlatformServices.UnitTests/`
- `src/Adapter/MSTest.Engine/` → `test/UnitTests/MSTest.Engine.UnitTests/`
- `src/Analyzers/MSTest.Analyzers/` → `test/UnitTests/MSTest.Analyzers.Tests/` (if exists)
- `src/Analyzers/MSTest.SourceGeneration/` → `test/UnitTests/MSTest.SourceGeneration.UnitTests/`
- `src/Platform/` → `test/UnitTests/` (find matching test project by name)
Expand Down
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,12 @@

<!-- Versioning -->
<PropertyGroup>
<MSTestEnginePreReleaseVersionLabel>alpha</MSTestEnginePreReleaseVersionLabel>
<MSTestSourceGenerationPreReleaseVersionLabel>alpha</MSTestSourceGenerationPreReleaseVersionLabel>

<!--
This is a early preview package, keep 2.0.0-alpha or similar suffix even in official builds.
-->
<MSTestEngineVersionPrefix>2.0.0</MSTestEngineVersionPrefix>
<MSTestSourceGenerationVersionPrefix>2.0.0</MSTestSourceGenerationVersionPrefix>
</PropertyGroup>

<!-- Pack config -->
Expand Down
1 change: 0 additions & 1 deletion MSTest.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
"samples\\FxExtensibility\\FxExtensibility.csproj",
"samples\\NUnitPlayground\\NUnitPlayground.csproj",
"samples\\Playground\\Playground.csproj",
"src\\Adapter\\MSTest.Engine\\MSTest.Engine.csproj",
"src\\Adapter\\MSTest.TestAdapter\\MSTest.TestAdapter.csproj",
"src\\Adapter\\MSTestAdapter.PlatformServices\\MSTestAdapter.PlatformServices.csproj",
"src\\Analyzers\\MSTest.Analyzers.CodeFixes\\MSTest.Analyzers.CodeFixes.csproj",
Expand Down
1 change: 0 additions & 1 deletion NonWindowsTests.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
"solution": {
"path": "TestFx.slnx",
"projects": [
"src\\Adapter\\MSTest.Engine\\MSTest.Engine.csproj",
"src\\Adapter\\MSTest.TestAdapter\\MSTest.TestAdapter.csproj",
"src\\Adapter\\MSTestAdapter.PlatformServices\\MSTestAdapter.PlatformServices.csproj",
"src\\Analyzers\\MSTest.Analyzers.CodeFixes\\MSTest.Analyzers.CodeFixes.csproj",
Expand Down
2 changes: 0 additions & 2 deletions TestFx.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
<Project Path="src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj" />
</Folder>
<Folder Name="/src/2 - Adapter/">
<Project Path="src/Adapter/MSTest.Engine/MSTest.Engine.csproj" />
<Project Path="src/Adapter/MSTest.TestAdapter/MSTest.TestAdapter.csproj" />
<Project Path="src/Adapter/MSTestAdapter.PlatformServices/MSTestAdapter.PlatformServices.csproj" />
</Folder>
Comment thread
Evangelink marked this conversation as resolved.
Expand Down Expand Up @@ -133,7 +132,6 @@
<Project Path="test/UnitTests/Microsoft.Testing.Platform.MSBuild.UnitTests/Microsoft.Testing.Platform.MSBuild.UnitTests.csproj" />
<Project Path="test/UnitTests/Microsoft.Testing.Platform.UnitTests/Microsoft.Testing.Platform.UnitTests.csproj" />
<Project Path="test/UnitTests/MSTest.Analyzers.UnitTests/MSTest.Analyzers.UnitTests.csproj" />
<Project Path="test/UnitTests/MSTest.Engine.UnitTests/MSTest.Engine.UnitTests.csproj" />
<Project Path="test/UnitTests/MSTest.SelfRealExamples.UnitTests/MSTest.SelfRealExamples.UnitTests.csproj" />
<Project Path="test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTest.SourceGeneration.UnitTests.csproj" />
<Project Path="test/UnitTests/MSTestAdapter.PlatformServices.UnitTests/MSTestAdapter.PlatformServices.UnitTests.csproj" />
Expand Down
4 changes: 4 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ For technical reasoning and implementation details, you can refer to the list of
- [DataSource Attribute Vs ITestDataSource](RFCs/007-DataSource-Attribute-VS-ITestDataSource.md)
- [Test case timeout via runsettings](RFCs/008-TestCase-Timeout.md)

## Design notes

- [MSTest source generator — design](source-generator/design.md): scope, fallback categories, discovery limitations and trim/AOT story for the `MSTest.SourceGeneration` package.

## Releases

You can find all features and bugs fixed in all our releases by looking at [releases.md](releases.md).
Loading
Loading