Skip to content

Accept xUnit.net v3 1.x through 4.x in Funcky.Xunit.v3 - #1028

Merged
FreeApophis merged 2 commits into
docs-xunit-chapterfrom
xunit-v3-version-range
Oct 29, 2026
Merged

FreeApophis merged 2 commits into
docs-xunit-chapterfrom
xunit-v3-version-range

Conversation

@FreeApophis

Copy link
Copy Markdown
Member

Part of #1015, the non-breaking slice that fits 3.8.0.

Changes

  • xunit.v3.assert and xunit.v3.extensibility.core are now [1.0.1, 5) instead of [1.0.1, 2). The package is still compiled against 1.0.1, so the lower bound and the public API are unchanged.
  • Changelog entry under Funcky 3.8.0 and the package readme name the supported range.
  • The xunit chapter gets a xUnit.net 3.x versions section with a compatibility table: which Funcky.Xunit.v3 works with which xunit.v3 major, the test host minimum (.NET 8 from 2.0 on), and the runner situation on the .NET 10 SDK, where 4.x needs Microsoft.Testing.Platform v2 or the mtp-off packages for VSTest.

Stacked on #1024 because the table lives in that chapter.

Why this is safe

Everything Funcky.Xunit.v3 touches is in xunit.v3.assert and xunit.v3.extensibility.core: Assert, XunitException, ArgumentFormatter.Format, IXunitSerializer, IRegisterXunitSerializerAttribute and SerializationHelper.Instance. None of these appear in the breaking-change lists of 2.0.0, 3.0.0 or 4.0.0, and both packages still ship netstandard2.0 in 4.x.

Verification

  • Funcky.Xunit.v3.Test with the library built against 1.0.1 and xunit.v3 4.0.2 at runtime: 59 passed, 0 failed (net10.0, via dotnet run --project).
  • With the range as committed, restore still picks 1.0.1 for the library; build with -warnaserror clean, 59 passed.

Left on #1015

  • A CI matrix leg running the v3 tests against the latest 1.x, 2.x, 3.x and 4.x, so the "expected to work" rows of the table become "verified".
  • Bumping the repo's own test projects to xunit.v3 4.x, which brings the VSTest/MTP runner change with it.

🤖 Generated with Claude Code

The package was pinned to xunit.v3 [1.0.1, 2) although nothing it uses
(Assert, XunitException, ArgumentFormatter, IXunitSerializer,
SerializationHelper) changed in the 2.0, 3.0 and 4.0 releases; the
breaking changes there are in the runner and extensibility pipeline.
The range is now [1.0.1, 5), still compiled against 1.0.1, and the test
suite passes against 4.0.2 at runtime.

The xunit chapter gains a compatibility table with the test host and
runner requirements of each xunit.v3 major, including the VSTest opt-in
needed on the .NET 10 SDK with 4.x.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@FreeApophis
FreeApophis added this pull request to stack #1029 October 29, 2026 13:42
@FreeApophis
FreeApophis merged commit 5e820f8 into main Oct 29, 2026
10 checks passed
@FreeApophis
FreeApophis deleted the xunit-v3-version-range branch October 29, 2026 14:04
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.

2 participants