Point MSTest.Sdk back to the classic sourcegen + engine wiring#9825
Point MSTest.Sdk back to the classic sourcegen + engine wiring#9825Evangelink wants to merge 1 commit into
Conversation
fa15e57 to
35a40d3
Compare
There was a problem hiding this comment.
Note
🤖 Automated review by GitHub Copilot. Generated by the Expert Code Review workflow. To request a follow-up action, reply by tagging @copilot directly.
Review Summary
All 22 dimensions inspected — no issues found.
This is a clean, minimal, and well-scoped revert confined to the SDK layer:
| Dimension | Verdict |
|---|---|
| Correctness | ✅ Token rename MSTestSourceGenerationVersion → MSTestEngineVersion is consistent across all three files (props template, csproj, NativeAOT.targets). |
| Backward Compatibility | ✅ Restores the property name consumers of 4.2.x relied on (MSTestEngineVersion). Users who already set it will continue to work. |
| MSBuild Patterns | ✅ CPM dual-path (PackageReference + PackageVersion) pattern is correctly applied to the re-added MSTest.Engine entry, matching the existing MSTest.TestFramework block. |
| Public API Surface | ✅ No new public .NET API added. |
| Security | ✅ No secrets, no user-controlled interpolation. |
| Performance | ✅ N/A — build-time only. |
| Documentation | ✅ Comment in .csproj clearly explains the legacy token flow. |
No inline comments warranted. LGTM from an automated perspective — human sign-off still required.
There was a problem hiding this comment.
Pull request overview
The PR intends to restore classic MSTest.Sdk NativeAOT engine/source-generator wiring, but the submitted diff also contains extensive unrelated repository changes.
Changes:
- Restores
MSTest.Engineand legacy source-generation version wiring. - Adds broad platform, adapter, analyzer, extension, localization, and test changes.
- Updates build infrastructure, dependencies, SDK versions, and agentic workflows.
Show a summary per file
| File | Description |
|---|---|
test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEquivalentTests.cs |
Adjusts null-equivalence tests. |
test/UnitTests/MSTestAdapter.PlatformServices.UnitTests/MSTestAdapter.PlatformServices.UnitTests.csproj |
References the adapter project. |
test/UnitTests/MSTestAdapter.PlatformServices.UnitTests/Extensions/TestResultExtensionsTests.cs |
Uses adapter-owned result properties. |
test/UnitTests/MSTestAdapter.PlatformServices.UnitTests/Execution/TestRunInfoTests.cs |
Uses neutral test traits. |
test/UnitTests/MSTest.AotReflection.SourceGeneration.UnitTests/Program.cs |
Removes the former test entry point. |
test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestHostOrchestratorManagerTests.cs |
Uses Assert.IsEmpty. |
test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/TestApplicationResultTests.cs |
Tests zero-run minimum policy. |
test/UnitTests/Microsoft.Testing.Platform.UnitTests/OutputDevice/NopPlatformOutputDeviceTests.cs |
Pins stable identity literals. |
test/UnitTests/Microsoft.Testing.Platform.UnitTests/Messages/AsynchronousMessageBusTests.cs |
Uses Assert.IsEmpty. |
test/UnitTests/Microsoft.Testing.Platform.UnitTests/IPC/ProtocolTests.cs |
Uses Assert.IsEmpty. |
test/UnitTests/Microsoft.Testing.Platform.DotnetTestProtocolContract.UnitTests/DotnetTestProtocolSerializerTests.cs |
Uses Assert.IsEmpty. |
test/UnitTests/Microsoft.Testing.Extensions.VSTestBridge.UnitTests/ObjectModel/ObjectModelConvertersTests.cs |
Supplies client capabilities. |
test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsTestNodeIdentityTests.cs |
Removes an obsolete import. |
test/Performance/MSTest.Performance.Runner/Steps/PlainProcess.cs |
Caches serializer options. |
test/Performance/MSTest.Performance.Runner/Steps/DotnetTestProcess.cs |
Caches serializer options. |
test/IntegrationTests/TestAssets/TimeoutTestProject/TimeoutTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/TestProject/TestProjectForDiscovery.csproj |
Removes legacy project metadata. |
test/IntegrationTests/TestAssets/TestIdProject.FullyQualifiedTestStrategy/TestIdProject.FullyQualifiedStrategy.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/TestIdProject.DefaultStrategy/TestIdProject.DefaultStrategy.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/TestCategoriesFromTestDataRowProject/TestCategoriesFromTestDataRowProject.csproj |
Normalizes framework configuration. |
test/IntegrationTests/TestAssets/SuiteLifeCycleTestProject/SuiteLifeCycleTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/SampleProjectForAssemblyResolution/SampleProjectForAssemblyResolution.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/ParallelTestMethods/ParallelMethodsTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/ParallelTestClass/ParallelClassesTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/OutputTestProject/OutputTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/LibProjectReferencedByDataSourceTest/LibProjectReferencedByDataSourceTest.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/HierarchyProject/HierarchyProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/FxExtensibilityTestProject/FxExtensibilityTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/FixturesTestProject/FixturesTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DynamicDataTestProject/DynamicDataTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DoNotParallelizeTestProject/DoNotParallelizeTestProject.csproj |
Removes legacy test-service metadata. |
test/IntegrationTests/TestAssets/DiscoverInternalsProject/DiscoverInternalsProject.csproj |
Removes legacy test-service metadata. |
test/IntegrationTests/TestAssets/DesktopTestProjectx86Release/DesktopTestProjectx86Release.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DesktopTestProjectx86Debug/DesktopTestProjectx86Debug.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DesktopTestProjectx64Release/DesktopTestProjectx64Release.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DesktopTestProjectx64Debug/DesktopTestProjectx64Debug.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DeploymentTestProject.PreserveNewest/DeploymentTestProject.PreserveNewest.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DeploymentTestProject.Never/DeploymentTestProject.Never.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/DataSourceTestProject/DataSourceTestProject.csproj |
Removes legacy service metadata. |
test/IntegrationTests/TestAssets/DataRowTestProject/DataRowTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/TestAssets/ClsTestProject/ClsTestProject.csproj |
Uses the repository minimum framework. |
test/IntegrationTests/PlatformServices.Desktop.IntegrationTests/PlatformServices.Desktop.IntegrationTests.csproj |
Adds an explicit object-model dependency. |
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TrimAndAotAssertions.cs |
Expands generated-file checks. |
test/IntegrationTests/MSTest.Acceptance.IntegrationTests/TestDiscoveryTests.cs |
Updates discovery commentary. |
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/ServerMode/v1.0.0/ClientCapabilities.cs |
Models stateful clients. |
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/LocalizationTests.cs |
Re-enables localization tests. |
test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/LocalizationFailingTests.cs |
Re-enables localization failure tests. |
src/TestFramework/TestFramework/PublicAPI/net9.0/PublicAPI.Unshipped.txt |
Moves RISC-V API tracking. |
src/TestFramework/TestFramework/PublicAPI/net9.0/PublicAPI.Shipped.txt |
Marks RISC-V API shipped. |
src/TestFramework/TestFramework/InternalAPI/net9.0/InternalAPI.Unshipped.txt |
Initializes internal API tracking. |
src/TestFramework/TestFramework/InternalAPI/net9.0/InternalAPI.Shipped.txt |
Initializes internal API tracking. |
src/TestFramework/TestFramework/InternalAPI/net/InternalAPI.Unshipped.txt |
Initializes internal API tracking. |
src/TestFramework/TestFramework/InternalAPI/net/InternalAPI.Shipped.txt |
Initializes internal API tracking. |
src/TestFramework/TestFramework/InternalAPI/InternalAPI.Unshipped.txt |
Initializes internal API tracking. |
src/TestFramework/TestFramework/Attributes/Lifecycle/Initialization/GlobalTestInitializeAttribute.cs |
Updates timeout documentation. |
src/TestFramework/TestFramework/Assertions/Assert.HasCount.cs |
Updates assertion telemetry commentary. |
src/TestFramework/TestFramework.Extensions/TestFramework.Extensions.csproj |
Enables internal API analysis. |
src/TestFramework/TestFramework.Extensions/TestContext.cs |
Uses safe property lookup. |
src/TestFramework/TestFramework.Extensions/InternalAPI/uap10.0.16299/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/uap10.0.16299/InternalAPI.Shipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/netstandard2.0/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/netstandard2.0/InternalAPI.Shipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net9.0/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net9.0/InternalAPI.Shipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net9.0-windows10.0.17763.0/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net9.0-windows10.0.17763.0/InternalAPI.Shipped.txt |
Tracks compiler-generated APIs. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net8.0/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net8.0/InternalAPI.Shipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net8.0-windows10.0.18362.0/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net8.0-windows10.0.18362.0/InternalAPI.Shipped.txt |
Tracks platform-specific APIs. |
src/TestFramework/TestFramework.Extensions/InternalAPI/net462/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/TestFramework/TestFramework.Extensions/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/SharedExtensionHelpers/TestNodeIdentity.cs |
Generalizes shared test identity. |
src/Platform/SharedExtensionHelpers/TargetFrameworkMonikerHelper.cs |
Clarifies framework naming. |
src/Platform/SharedExtensionHelpers/ReporterLoggingExtensions.cs |
Adds shared reporter logging. |
src/Platform/Microsoft.Testing.Platform/Services/ShutdownProgressReporter.cs |
Handles single-threaded WASM. |
src/Platform/Microsoft.Testing.Platform/Services/ServiceProviderExtensions.cs |
Exposes artifact naming. |
src/Platform/Microsoft.Testing.Platform/Services/IClientInfo.cs |
Adds client capabilities. |
src/Platform/Microsoft.Testing.Platform/Services/ClientInfoService.cs |
Stores client capabilities. |
src/Platform/Microsoft.Testing.Platform/Services/ClientCapabilitiesService.cs |
Implements client capabilities. |
src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/SerializerUtilities.Deserializers.cs |
Deserializes statefulness. |
src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/RpcMessages.cs |
Extends the capability record. |
src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/JsonRpcMethods.cs |
Adds the protocol key. |
src/Platform/Microsoft.Testing.Platform/ServerMode/JsonRpc/Json/Json.Deserializers.cs |
Deserializes statefulness. |
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx |
Updates a logger error message. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf |
Regenerates localization metadata. |
src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalTestReporterCommandLineOptionsProvider.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Platform/Messages/AsynchronousMessageBus.cs |
Uses inline WASM consumers. |
src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt |
Tracks shared serializer APIs. |
src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.CommonServices.cs |
Registers artifact naming. |
src/Platform/Microsoft.Testing.Platform/Hosts/ServerTestHost.RequestExecution.cs |
Captures client statefulness. |
src/Platform/Microsoft.Testing.Platform/Hosts/ServerTestHost.cs |
Suppresses unstable API tracking. |
src/Platform/Microsoft.Testing.Platform/Hosts/ConsoleTestHost.cs |
Declares a stateless console client. |
src/Platform/Microsoft.Testing.Platform/Extensions/IExtension.cs |
Documents stable extension UIDs. |
src/Platform/Microsoft.Testing.Platform/Extensions/CompositeExtensionsFactory.cs |
Suppresses nondeterministic constant tracking. |
src/Platform/Microsoft.Testing.Platform/CommandLine/PlatformCommandLineProvider.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Platform.MSBuild/Tasks/InvokeTestingPlatformTask.cs |
Adds execution-state fields. |
src/Platform/Microsoft.Testing.Platform.AI/Microsoft.Testing.Platform.AI.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Platform.AI/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/Requests/VSTestRunTestExecutionRequestFactory.cs |
Propagates UID strategy. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/Requests/VSTestDiscoverTestExecutionRequestFactory.cs |
Propagates UID strategy. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/ObjectModel/RunContextAdapter.cs |
Supports configurable UID filtering. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/ObjectModel/DiscoveryContextAdapter.cs |
Supports configurable UID filtering. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/Microsoft.Testing.Extensions.VSTestBridge.csproj |
Links shared run-settings logic. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/CommandLine/TestRunParametersCommandLineOptionsProvider.cs |
Reuses shared validation. |
src/Platform/Microsoft.Testing.Extensions.VSTestBridge/CommandLine/RunSettingsCommandLineOptionsProvider.cs |
Reuses shared file validation. |
src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderCommandLineProvider.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.VideoRecorder/Microsoft.Testing.Extensions.VideoRecorder.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.TrxReport/TrxCommandLine.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.TrxReport/Microsoft.Testing.Extensions.TrxReport.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt |
Tracks shared serializer APIs. |
src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/Microsoft.Testing.Extensions.TrxReport.Abstractions.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.Telemetry/Microsoft.Testing.Extensions.Telemetry.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Unshipped.txt |
Tracks channel API. |
src/Platform/Microsoft.Testing.Extensions.Retry/RetryCommandLineOptionsProvider.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.Retry/Microsoft.Testing.Extensions.Retry.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt |
Tracks shared serializer APIs. |
src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Unshipped.txt |
Moves APIs to shipped tracking. |
src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Shipped.txt |
Marks APIs shipped. |
src/Platform/Microsoft.Testing.Extensions.PackagedApp/Microsoft.Testing.Extensions.PackagedApp.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/Microsoft.Testing.Extensions.OpenTelemetry.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/ExtensionResources.resx |
Adds the provider display name. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.zh-Hant.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.zh-Hans.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.tr.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.ru.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.pt-BR.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.pl.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.ko.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.ja.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.it.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.fr.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.es.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.de.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Resources/xlf/ExtensionResources.cs.xlf |
Adds localization metadata. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/MSBuildCommandLineProvider.cs |
Stabilizes identity and display name. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/Microsoft.Testing.Extensions.MSBuild.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt |
Tracks shared serializer APIs. |
src/Platform/Microsoft.Testing.Extensions.Logging/PublicAPI/PublicAPI.Unshipped.txt |
Moves APIs to shipped tracking. |
src/Platform/Microsoft.Testing.Extensions.Logging/PublicAPI/PublicAPI.Shipped.txt |
Marks APIs shipped. |
src/Platform/Microsoft.Testing.Extensions.Logging/Microsoft.Testing.Extensions.Logging.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.Logging/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.JUnitReport/PublicAPI/PublicAPI.Unshipped.txt |
Moves APIs to shipped tracking. |
src/Platform/Microsoft.Testing.Extensions.JUnitReport/PublicAPI/PublicAPI.Shipped.txt |
Marks APIs shipped. |
src/Platform/Microsoft.Testing.Extensions.JUnitReport/Microsoft.Testing.Extensions.JUnitReport.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.JUnitReport/JUnitReportGeneratorCommandLine.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.HtmlReport/PublicAPI/PublicAPI.Unshipped.txt |
Moves APIs to shipped tracking. |
src/Platform/Microsoft.Testing.Extensions.HtmlReport/PublicAPI/PublicAPI.Shipped.txt |
Marks APIs shipped. |
src/Platform/Microsoft.Testing.Extensions.HtmlReport/Microsoft.Testing.Extensions.HtmlReport.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.HtmlReport/HtmlReportGeneratorCommandLine.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.HotReload/Microsoft.Testing.Extensions.HotReload.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.HangDump/Microsoft.Testing.Extensions.HangDump.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt |
Tracks shared serializer APIs. |
src/Platform/Microsoft.Testing.Extensions.HangDump/HangDumpCommandLineProvider.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/TestingPlatformBuilderHook.cs |
Adds SDK registration hook. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Unshipped.txt |
Initializes public API tracking. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Shipped.txt |
Declares shipped public APIs. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Unshipped.txt |
Initializes internal API tracking. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/GitHubActionsCommandLineOptions.cs |
Defines report options. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/buildTransitive/Microsoft.Testing.Extensions.GitHubActionsReport.props |
Adds transitive package import. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/buildMultiTargeting/Microsoft.Testing.Extensions.GitHubActionsReport.props |
Registers the builder hook. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/build/Microsoft.Testing.Extensions.GitHubActionsReport.props |
Adds package import forwarding. |
src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/BannedSymbols.txt |
Establishes banned APIs. |
src/Platform/Microsoft.Testing.Extensions.CtrfReport/PublicAPI/PublicAPI.Unshipped.txt |
Moves APIs to shipped tracking. |
src/Platform/Microsoft.Testing.Extensions.CtrfReport/PublicAPI/PublicAPI.Shipped.txt |
Marks APIs shipped. |
src/Platform/Microsoft.Testing.Extensions.CtrfReport/Microsoft.Testing.Extensions.CtrfReport.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.CtrfReport/CtrfReportGeneratorCommandLine.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.CtrfReport/CtrfReportEngine.FileNaming.cs |
Uses platform-aware framework names. |
src/Platform/Microsoft.Testing.Extensions.CrashDump/Microsoft.Testing.Extensions.CrashDump.csproj |
Enables internal API analysis. |
src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.CrashDump/CrashDumpCommandLineProvider.cs |
Pins a stable extension UID. |
src/Platform/Microsoft.Testing.Extensions.AzureFoundry/Resources/ExtensionResources.resx |
Adds authentication guidance. |
src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Unshipped.txt |
Tracks credential overload. |
src/Platform/Microsoft.Testing.Extensions.AzureFoundry/Microsoft.Testing.Extensions.AzureFoundry.csproj |
Adds Azure Core and API tracking. |
src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Unshipped.txt |
Tracks authentication internals. |
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsPublisher.Configuration.cs |
Uses platform-aware framework names. |
src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsCommandLineProvider.cs |
Pins a stable extension UID. |
src/Platform/Directory.Build.props |
Computes the next platform major. |
src/Package/MSTest.Sdk/Sdk/VSTest/VSTest.targets |
Rejects GitHub reporting under VSTest. |
src/Package/MSTest.Sdk/Sdk/Sdk.targets |
Guards the base SDK import. |
src/Analyzers/MSTest.SourceGeneration/Models/TestClassModel.cs |
Moves source-generation namespace. |
src/Analyzers/MSTest.SourceGeneration/Helpers/MSTestAttributeNames.cs |
Moves source-generation namespace. |
src/Analyzers/MSTest.SourceGeneration/Helpers/IndentedStringBuilder.cs |
Updates shared-generator documentation. |
src/Analyzers/MSTest.SourceGeneration/Generators/TestClassModelBuilder.cs |
Moves generator implementation. |
src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs |
Moves and renames generated attribution. |
src/Analyzers/MSTest.SourceGeneration/Generators/MSTestReflectionMetadataGenerator.cs |
Integrates the reflection-free generator. |
src/Analyzers/MSTest.SourceGeneration/Diagnostics/LocationInfo.cs |
Moves diagnostics namespace. |
src/Analyzers/MSTest.SourceGeneration/Diagnostics/DiagnosticInfo.cs |
Moves diagnostics namespace. |
src/Analyzers/MSTest.SourceGeneration/Diagnostics/DiagnosticDescriptors.cs |
Moves diagnostics namespace. |
src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Unshipped.md |
Tracks source-generator diagnostics. |
src/Analyzers/MSTest.AotReflection.SourceGeneration/Helpers/SystemPolyfills.cs |
Removes obsolete polyfill. |
src/Analyzers/MSTest.AotReflection.SourceGeneration/AnalyzerReleases.Unshipped.md |
Removes obsolete release tracking. |
src/Analyzers/MSTest.AotReflection.SourceGeneration/AnalyzerReleases.Shipped.md |
Removes obsolete release tracking. |
src/Analyzers/MSTest.Analyzers/UseProperAssertMethodsAnalyzer.cs |
Recommends IsEmpty. |
src/Analyzers/MSTest.Analyzers/Resources.resx |
Updates fixture-rule guidance. |
src/Analyzers/MSTest.Analyzers/GlobalTestFixtureShouldBeValidAnalyzer.cs |
Lowers diagnostic severity. |
src/Adapter/MSTestAdapter.PlatformServices/SourceGeneration/CompositeSourceGeneratedReflectionDataProvider.cs |
Accepts read-only dictionaries. |
src/Adapter/MSTestAdapter.PlatformServices/ObjectModel/AdapterSettingsException.cs |
Documents settings failures. |
src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Unshipped.txt |
Tracks new adapter internals. |
src/Adapter/MSTestAdapter.PlatformServices/Helpers/TestRunParameters.cs |
Removes object-model dependency. |
src/Adapter/MSTestAdapter.PlatformServices/Helpers/ReflectHelper.cs |
Uses neutral traits. |
src/Adapter/MSTestAdapter.PlatformServices/Execution/UnitTestRunner.TestFilter.cs |
Uses neutral logging. |
src/Adapter/MSTestAdapter.PlatformServices/Execution/TestRunInfo.cs |
Uses neutral traits. |
src/Adapter/MSTestAdapter.PlatformServices/Execution/TestMethodInfo.Execution.cs |
Uses cached parameter metadata. |
src/Adapter/MSTestAdapter.PlatformServices/Execution/TestMethodInfo.cs |
Centralizes result output handling. |
src/Adapter/MSTestAdapter.PlatformServices/Execution/TestMethodInfo.ArgumentResolution.cs |
Reuses cached parameters. |
src/Adapter/MSTestAdapter.PlatformServices/Execution/ClassCleanupManager.cs |
Uses neutral logging. |
src/Adapter/MSTestAdapter.PlatformServices/ApartmentStateSetting.cs |
Adds neutral apartment-state model. |
src/Adapter/MSTest.TestAdapter/TestingPlatformAdapter/PlatformServicesConfigurationAdapter.cs |
Renames configuration adapter. |
src/Adapter/MSTest.TestAdapter/TestingPlatformAdapter/MSTestTestNodeException.cs |
Adds native MTP failure exception. |
src/Adapter/MSTest.TestAdapter/TestingPlatformAdapter/IMSTestTrxReportCapability.cs |
Adds native TRX capability. |
src/Adapter/MSTest.TestAdapter/Services/MessageLevel.cs |
Bridges message levels. |
src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Unshipped.txt |
Initializes API tracking. |
src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Unshipped.txt |
Tracks adapter internals. |
src/Adapter/MSTest.TestAdapter/Extensions/TestResultExtensions.cs |
Uses adapter-owned result properties. |
samples/WasiPlayground/Program.cs |
Disables unsupported Azure reporting. |
samples/public/global.json |
Updates the sample MSTest SDK. |
MSTest.slnf |
Removes the retired generator project. |
Microsoft.Testing.Platform.slnf |
Adds GitHub Actions reporting. |
global.json |
Updates the repository .NET SDK. |
eng/verify-nupkgs.ps1 |
Updates package-layout expectations. |
docs/mstest-runner-protocol/001-protocol-intro.md |
Documents stateful clients. |
Directory.Packages.props |
Updates central dependencies. |
Directory.Build.props |
Adds GitHub report versioning. |
azure-pipelines-official.yml |
Enables CI build behavior. |
.github/workflows/weekly-issue-activity.md |
Shortens automated footer disclosure. |
.github/workflows/unskip-closed-tests.md |
Shortens automated footer disclosure. |
.github/workflows/test-improver.md |
Shortens automated footer disclosure. |
.github/workflows/sub-issue-closer.md |
Shortens automated footer disclosure. |
.github/workflows/shared/msbuild-review-shared.md |
Shortens automated footer disclosure. |
.github/workflows/shared/grade-tests-shared.md |
Shortens automated footer disclosure. |
.github/workflows/shared/address-review-shared.md |
Shortens automated footer disclosure. |
.github/workflows/repository-quality-improver.md |
Shortens automated footer disclosure. |
.github/workflows/pr-fix.md |
Shortens automated footer disclosure. |
.github/workflows/perf-improver.md |
Shortens automated footer disclosure. |
.github/workflows/markdown-linter.md |
Shortens automated footer disclosure. |
.github/workflows/malicious-code-scan.md |
Shortens automated footer disclosure. |
.github/workflows/link-checker.md |
Shortens automated footer disclosure. |
.github/workflows/grade-tests.agent.md |
Shortens automated footer disclosure. |
.github/workflows/grade-tests-on-pr.agent.md |
Shortens automated footer disclosure. |
.github/workflows/glossary-maintainer.md |
Shortens automated footer disclosure. |
.github/workflows/efficiency-improver.md |
Shortens automated footer disclosure. |
.github/workflows/duplicate-code-detector.md |
Shortens automated footer disclosure. |
.github/workflows/dependabot-pr-bundler.md |
Shortens automated footer disclosure. |
.github/workflows/dependabot-issue-bundler.md |
Shortens automated footer disclosure. |
.github/workflows/daily-file-diet.md |
Shortens automated footer disclosure. |
.github/workflows/code-simplifier.md |
Shortens automated footer disclosure. |
.github/workflows/build-failure-analysis.md |
Shortens automated footer disclosure. |
.github/workflows/build-failure-analysis-command.md |
Shortens automated footer disclosure. |
.github/workflows/autofix.agent.md |
Shortens automated footer disclosure. |
.github/workflows/adhoc-qa.md |
Shortens automated footer disclosure. |
.github/workflows/address-review.agent.md |
Shortens automated footer disclosure. |
.github/workflows/add-tests.md |
Shortens automated footer disclosure. |
.config/dotnet-tools.json |
Updates dotnet-coverage. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 1
- Review effort level: Medium
There was a problem hiding this comment.
Note
🤖 Automated review by GitHub Copilot. Posted via a maintainer's GitHub token, so it appears under their account — the account owner did not write or approve this content personally. Generated by the Expert Code Review workflow. To request a follow-up action, reply by tagging @copilot directly.
Review Summary
Clean, well-scoped change. This is a targeted revert that pins MSTest.Sdk's NativeAOT wiring back to the classic MSTest.Engine + MSTest.SourceGeneration packages at a hardcoded version, since those packages are no longer built from this repo.
Findings
| # | Dimension | Verdict |
|---|---|---|
| 1 | Algorithmic Correctness | ✅ Clean |
| 2 | Threading & Concurrency | N/A |
| 3–22 | All others | ✅ Clean / N/A |
One minor observation (non-blocking)
The hardcoded version 2.0.0-alpha.26264.3 in Sdk.props.template is a pragmatic choice given the constraints (no local build of these packages). The XML comment explains the rationale well. If a newer MSTest.Engine is published later, this will need a manual bump — but that's clearly intentional and the property is overridable by consumers via $(MSTestEngineVersion).
MSBuild correctness
- The
_TemplatePropertiesline correctly dropsMSTestSourceGenerationVersion(no longer computed) and doesn't addMSTestEngineVersion(it's hardcoded in the template, not injected at build time). ✅ NativeAOT.targetscorrectly addsMSTest.Enginewith the same CPM pattern used by neighboring references. ✅- The
Sdk="MSTest"attribute on the newPackageReferenceis consistent with the existing items in the sameItemGroup. ✅
No blocking issues found.
Restore the MSTestEngineVersion property and re-add the MSTest.Engine package reference in the NativeAOT engine, referencing both MSTest.Engine and MSTest.SourceGeneration at that version (as in 4.2.3), while keeping the 4.3 packaging/CPM/SDK-layering improvements and report extensions.
Since MSTest.Engine and MSTest.SourceGeneration are no longer built from this repo, hardcode the version to the last co-published preview (2.0.0-alpha.26264.3) so consumer projects always resolve a real package instead of an unpublished -dev/-ci build.
Also drop the 4.3-only MSTest.TestAdapter reference and the EnableMSTestRunner/IsTestingPlatformApplication property group from the NativeAOT runner. Those were added for the new source generator; with the classic MSTest.Engine they caused a second test framework to be registered ('The test framework adapter factory has already been registered'). Restoring the 4.2 wiring (MSTest.Engine + MSTest.SourceGeneration only) fixes NativeAot_Smoke_Test, verified locally.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
35a40d3 to
5c9d54d
Compare
What
Restores the MSTest.Sdk wiring to use the "old" source generation + engine setup (as shipped in 4.2.3), since we won't be able to properly fix the new source gen on the 4.3 line in time.
Confined to the
src/Package/MSTest.Sdklayer — a targeted revert, not a full folder rollback:Sdk/Sdk.props.template— exposeMSTestEngineVersionagain (wasMSTestSourceGenerationVersion).MSTest.Sdk.csproj—GenerateTemplatesinjects the computed version under the legacyMSTestEngineVersiontoken (the value still comes from the source-generation prefix that drives the package).Sdk/Runner/NativeAOT.targets— re-add theMSTest.Enginepackage reference and point bothMSTest.EngineandMSTest.SourceGenerationat$(MSTestEngineVersion), using the existing 4.3 CPMPackageReference/PackageVersionpattern.Deliberately kept intact (not reverted)
PackrefactorDirectory.Build.props, theMSTest.SourceGenerationpackage project, and the acceptance-test infrastructure (which reads the version from the built package file name, not the MSBuild property)Validation
build.cmd -pack -projects MSTest.Sdk.csproj -c Releasesucceeds with 0 warnings / 0 errors. The generatedSdk.propsresolves${MSTestEngineVersion}correctly (2.0.0-devlocally; keeps thealphalabel for official builds).Note
MSTest.Engineno longer exists as a project in this repo, so local/CI builds compute2.0.0-devand won't find a matchingMSTest.Enginepackage on any feed. This wiring resolves correctly against the previously-publishedMSTest.Engine2.0.0-alpha packages for official builds; SDK-based NativeAOT-engine acceptance tests will fail to restore locally until those packages are available.Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com