Remove obsolete MSTest 5 and Microsoft.Testing.Platform 3 compatibility APIs and configuration aliases
Los mantenedores suelen responder en 1 día
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Scope and rationale
Track the six approved major-version removal groups for MSTest 5.0 / Microsoft.Testing.Platform (MTP) 3.0. The reviewed source and implementation baseline is 471a807cf8182e0bcd0d9967c8dbf002c04945d2. This is planned breaking cleanup, not authorization to remove other compatibility surfaces.
Intended breaks and migrations
- MSTest
TestResultunused properties: removeInnerResultsCount,DatarowIndex, andReturnValuefromMicrosoft.VisualStudio.TestTools.UnitTesting.TestResult. They are already obsolete-as-error and have no supported effect. Custom result producers and reflection/binary consumers must stop accessing them; no replacement is needed for these unused values. Other result properties and .NET Framework remoting remain supported. - MTP internal
Helpers.AppVersion: remove the obsolete compatibility type andDefaultSemVer. Migrate the remaining in-repository test toPlatformVersion.Version. Friend/source consumers that use this internal shim must also migrate. Do not remove unrelated extension version helpers or friend grants. - MTP
TestApplication.CreateServerModeBuilderAsync: remove the obsolete public method. CallTestApplication.CreateBuilderAsyncwith exactly one explicit--serverargument. The removed helper injected/deduplicated the server switch, so changing only the method name is not an equivalent migration. Already-compiled callers need an upgraded/recompiled consumer. - MTP
CancelledTestNodeStateProperty: remove the obsolete public in-process test-node state, its public/internal API records through explicit removal entries, and branches/suppressions/tests that exist only for that state. Test frameworks should throwOperationCanceledExceptioncarrying MTP's supplied cancellation token instead. Audit terminal/TRX/HTML/CI reporters, category/result aggregation, JSON-RPC, dotnet-test IPC, Retry, HangDump and CrashDump. Update the linked server-client source package and its tests as well as the platform. Preserve functional cancellation, fault observation, and older-peer wire states unless a separately established protocol contract requires a targeted migration. Extensions that still bind to the removed CLR type must upgrade; identify any exact compatibility dependency rather than dropping all old-extension support. - MTP diagnostic environment aliases: remove
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIXandTESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE, their fallback reads, deprecation warnings, and directly dependent resources/tests. SetTESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIXandTESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITErespectively. The old names will no longer affect configuration; supported CLI/environment precedence must remain intact. - MSTest flat ordering configuration alias: remove the fallback and warning for
mstest:orderTestsByNameInClass. Usemstest:execution:orderTestsByNameInClassintestconfig.json. The removed flat key will no longer enable ordering; defaults and the nested setting remain unchanged.
Consumer and compatibility boundaries
The API removals intentionally break source/binary consumers of those exact APIs. Keep shipped API history intact and record approved removals with *REMOVED* entries in the appropriate unshipped public/internal baselines. Do not silently widen this to other shims, defaults, or protocol changes.
ForwardCompatibilityTests currently exercises older 2.2.1 extensions and MSBuild 2.3.0; TelemetryForwardCompatibilityTests exercises telemetry 2.0.0 on .NET Framework. Preserve this compatibility coverage wherever it does not depend on the specifically removed state. Establish/document the exact dependency of an old consumer that must upgrade instead of deleting unrelated compatibility tests.
Explicitly excluded: the old orchestrator facade; parameterless IProcess.WaitForExitAsync; compatibility-only polyfill exports; old-engine friend grants; --no-progress / --no-ansi; HangDump %p; legacy OpenTelemetry output; serialization constructors; HasExitedGracefully renaming; IsTestingPlatformApplication default changes; UWP/WinUI package splitting; assertion misuse guards; VSTest interface implementations; .NET Framework remoting; Jsonite; necessary polyfills; functional cancellation/fault observation.
Delivery and validation
Update directly related migration/changelog documentation, preserve UTF-8 BOM in C# sources, and regenerate removed localization entries via each owning project's UpdateXlf target. Use the repository-pinned SDK/build scripts. Keep focused consumer coverage for supported configuration, explicit server mode, token cancellation, linked source-only clients and relevant old extensions. Pack before package-consuming acceptance runs; identify the actual packages/binaries consumed. Distinguish executed behavior evidence from compilation, static predictions, skipped/zero-test runs and unavailable platform checks. No pull request is requested by this issue creation.
Verified extension migration dependencies
Removing the approved internal AppVersion shim is also a binary break for older friend assemblies, not just an in-repository test migration. Package metadata and a real packed consumer established these specific dependencies:
| Consumer | Removed binding in the old binary | Migration exercised with MTP 3 |
|---|---|---|
| CrashDump 2.2.1 | AppVersion; CrashDump 2.3.0 instead binds CancelledTestNodeStateProperty |
Matching current CrashDump build. |
| HangDump 2.2.1 | Both AppVersion and CancelledTestNodeStateProperty |
Matching current HangDump build. |
| Retry 2.2.1 | AppVersion; Retry 2.3.0 binds the removed cancellation state |
Matching current Retry build. |
| TRX 2.2.1 | AppVersion |
TRX 2.3.0 remains in the compatibility fixture because it binds neither removed type. |
| Platform.MSBuild 2.3.0 | CancelledTestNodeStateProperty in its MSBuild consumer extension |
Matching current Platform.MSBuild build. |
| HotReload and Telemetry 2.2.1 | Neither removed type | Retained unchanged in the compatibility fixture. |
| Telemetry 2.0.0 on .NET Framework | Neither removed type | The existing enabled-telemetry canary is retained unchanged. |
These are tested package combinations, not a universal or monotonic minimum-version promise for all 2.x extensions. The original fixture executed and failed with TypeLoadException naming the two removed types. The narrowly migrated mixed-version fixture passed, asserting the TRX result's exact name, Passed outcome, and total/executed/passed counts of one. The unchanged telemetry 2.0.0 .NET Framework canary also passed. Local package-consuming validation used MSTest 5.0.0-dev and MTP 3.0.0-dev; it is not CI or published-release certification. Older-peer JSON-RPC canceled responses, cancellation requests, reserved IPC state values, and historical report-journal states remain supported.
- Lenguaje dominante
- C#
- Estrellas
- 1.1k
- Forks
- 314
- Merge medio
- 11 h 9 min
- PR fusionados (30 d)
- 340
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/testfx
-
type/breaking-change
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Los mantenedores suelen responder en 1 día
-
area/analyzers area/assertion
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
microsoft/testfx#12260 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
area/assertion needs/triage
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
Los mantenedores suelen responder en 1 día
-
type/automation type/test-gap
Dificultad 3/5 Medio día Aptitud para principiantes 15/100
Los mantenedores suelen responder en 1 día
-
The productive version of Microsoft.Testing.Extensions.HangDump must not reference to a preview version of Microsoft.Diagnostics.NETCore.ClientPosiblemente ocupada @Evangelink la tomó hace 15 días. Abiertoarea/dump external/other
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
microsoft/testfx#11981 · 6 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/testfx
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
RadicalCSG/com.chisel#312 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
DeveloperAcademy-POSTECH/2026-C6-M10-MUSA#677 ·
Los mantenedores suelen responder en 1 día
-
REQ-13 : une demande En cours perd son responsable par un simple enregistrement, et reste En coursAbiertoa-corriger bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
christian-raj/S-Aloha#301 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
.NET Docs Next Major State: Needs Discussion
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
getsentry/sentry-dotnet#5912 · 1 comentario ·
Los mantenedores suelen responder en 1 día