Run the test suite through Microsoft Testing Platform - #7
Merged
Conversation
dotnet test on the .NET 10 SDK supports MTP natively when global.json names the runner, which retires the VSTest stack: Microsoft.NET.Test.Sdk goes away, NUnit3TestAdapter 6.x itself is the runner, and the test project becomes an executable. The recipe follows ILSpy's settled migration, including what it discarded along the way: dotnet.config (superseded by the global.json test section) and TestingPlatformDotnetTestSupport (obsolete). ILSpy's explicit VSTestBridge reference was not needed here - the build is clean without it. TRX reporting comes from Microsoft.Testing.Extensions.TrxReport, so a CI failure survives the run: the workflow writes test-results/ and uploads it even when tests fail. Coverage (coverlet.MTP) is left out - nothing collects coverage today. global.json deliberately has no sdk section: the repo has never pinned an SDK version and CI selects 10.0.x on its own; pinning should not start as a side effect of naming the test runner. Assisted-by: Claude:claude-fable-5:Claude Code
The uploaded artifact answers a deep investigation; the summary page answers the first question - what failed - without downloading anything. Same test-summary/action@v2 arrangement ILSpy uses, folded so a green run stays one line. Assisted-by: Claude:claude-fable-5:Claude Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Migrates the tests from the VSTest stack to Microsoft Testing Platform (MTP), following ILSpy's settled recipe.
global.json(new) namesMicrosoft.Testing.Platformas thedotnet testrunner — the .NET 10 SDK's native MTP support. Nosdkpin; the repo has never had one.Stampeded.Core.Tests.csproj:OutputType=Exe+EnableNUnitRunner=true;Microsoft.NET.Test.Sdkremoved (NUnit3TestAdapter 6.x is the runner itself),Microsoft.Testing.Extensions.TrxReportadded.dotnet test --solution Stampeded.slnx ... --report-trx --results-directory test-resultsand uploads the TRX per matrix leg even when tests fail, so a failure survives the run.CLAUDE.mddocuments the new invocation — the bare positionaldotnet test <sln>form is VSTest syntax and errors under MTP.Deliberately skipped, as ILSpy's history showed them obsolete or unneeded:
dotnet.config(superseded by theglobal.jsontest section),TestingPlatformDotnetTestSupport, and an explicitVSTestBridgereference (build is clean without it).coverlet.MTPis left out because nothing collects coverage today.Verified locally on Windows: 262 tests, 257 passed / 4 skipped / 1 failed — the failure being the known symlink-privilege-only
DoesNotFollowASymlinkOutOfTheWorktree, which passes on CI runners. TRX lands intest-results/, and--filter FullyQualifiedName~...still works (NUnit keeps the VSTest filter format under MTP).🤖 Generated with Claude Code