Skip to content

Take Aspire 13.5.0, hold xunit.v3 at 3.x, move dotnet test to MTP mode - #23

Closed
KaliCZ wants to merge 1 commit into
mainfrom
claude/strongtypes-pr22-build-267a9e
Closed

Take Aspire 13.5.0, hold xunit.v3 at 3.x, move dotnet test to MTP mode#23
KaliCZ wants to merge 1 commit into
mainfrom
claude/strongtypes-pr22-build-267a9e

Conversation

@KaliCZ

@KaliCZ KaliCZ commented Aug 20, 2026

Copy link
Copy Markdown
Owner

Replaces #22, which can't go green as-is.

Why #22 fails

The build actually succeeds — it's dotnet test that fails:

Microsoft.Testing.Platform.MSBuild.targets(320,5): error : Testing with VSTest target is
no longer supported by Microsoft.Testing.Platform on .NET 10 SDK and later.

Two separate problems hide behind that, and only one of them is fixable today.

xunit.v3 4.0.0 is not adoptable — held

FsCheck.Xunit.v3 3.3.4 (the newest release, Jul 2026) is built against
xunit.v3.extensibility.core 3.0.1. xunit.v3 4.0.0 changed the signature of
TestIntrospectionHelper.GetTestCaseDetails, so with 4.0.0 in place every
[Property] test dies during discovery:

Xunit.MicrosoftTestingPlatform.XunitException: Exception during discovery:
System.MissingMethodException: Method not found: '...TestIntrospectionHelper.GetTestCaseDetails(...)'
   at FsCheck.Xunit.PropertyDiscoverer...Discover(...)

8 of 13 unit tests fail. It's a runtime binding break, so there's nothing to fix on
our side — it needs a FsCheck release built against xunit.v3 4.x. Added a dependabot
ignore for the major, same shape as the existing typescript hold.

The MTP migration isn't blocked — done

xunit.v3 4.x pulls Microsoft.Testing.Platform 2.x, which removed the VSTest bridge on
the .NET 10 SDK. That's the error above, and it's independent of the FsCheck problem,
so it's migrated now rather than left to rediscover later:

  • global.json gains test.runner: Microsoft.Testing.Platform — the replacement opt-in
  • TestingPlatformDotnetTestSupport dropped from both test projects; it's obsolete under MTP mode

This works with xunit.v3 3.2.2 today and means the only thing standing between us and
xunit.v3 4.x is FsCheck.

Aspire 13.5.0 — taken

Builds clean, 0 warnings (and TreatWarningsAsErrors is on, so no obsolete-API
warnings either). None of the 13.5 breaking changes touch the AppHost.

Verification

dotnet build ProductReviews.slnx --no-restore -c Release → 0 warnings, 0 errors.
dotnet test --no-build -c Release → 43/43 passing, both projects, integration tests
against real Postgres via Testcontainers. Bare dotnet test still discovers the
.slnx in MTP mode, so no CI or docs command changes.

🤖 Generated with Claude Code

Splits PR #22 (grouped nuget bump) into the part that works and the part
that can't land yet.

Aspire 13.5.0 builds clean — none of the 13.5 breaking changes touch the
AppHost.

xunit.v3 4.0.0 is not adoptable: FsCheck.Xunit.v3 3.3.4 (the newest
release) is built against xunit.v3.extensibility.core 3.0.1, and
xunit.v3 4.0.0 changed TestIntrospectionHelper.GetTestCaseDetails, so
every [Property] test dies with a MissingMethodException during
discovery. Held via a dependabot ignore until FsCheck ships a 4.x build.

xunit.v3 4.x also pulls Microsoft.Testing.Platform 2.x, which dropped the
VSTest bridge on the .NET 10 SDK — the actual CI error. That half is not
blocked, so migrate now: global.json's test.runner is the replacement
opt-in, and TestingPlatformDotnetTestSupport is obsolete under it. Works
with xunit.v3 3.2.2 today and unblocks 4.x whenever FsCheck catches up.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@KaliCZ KaliCZ closed this Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant