Skip to content

Support xUnit.v3 version 2, 3, and 4. #1015

Open

Description

@FreeApophis

Currently we compile against xUnit.v3 in version 1, but xUnit already made multiple breaking changes releases, they are currently on xUnit.v3 version 4.

We should test what we actually support and then try to get all the versions to work and give a table on what should work with what in the documentation.

We already ran into Problems for xUnit.v3 in version 4.x because the old test-runners are not supported anymore (and the new ones are not supported on our Azure.DevOps) This should also be in the compatibility table.

This will be probably done in parallel to the normal release process probably with 4.0.0 (that's why assign it to the milestone, but since we might need to publish multiple version, we might need to use a different schedule than the rest.)

Activity

  1. FreeApophis commented on Oct 27, 2026

    @FreeApophis
    MemberAuthor

    The table will be added to this chapter #1017

  2. FreeApophis commented on Oct 29, 2026

    @FreeApophis
    MemberAuthor

    Status after 3.8.0 (29 Oct 2026): the consumer-facing half shipped, the repository-side half is still open.

    Shipped in 3.8.0 with #1028

    • Funcky.Xunit.v3 1.1.0 accepts xunit.v3.assert and xunit.v3.extensibility.core [1.0.1, 5), i.e. xunit.v3 1.x through 4.x. The library is still compiled against 1.0.1; the types it uses (Assert, XunitException, ArgumentFormatter, IXunitSerializer, SerializationHelper) did not change in the 2.0, 3.0 and 4.0 releases, whose breaking changes are in the runner and extensibility pipeline.
    • The compatibility table in the Testing with xUnit chapter: Funcky.Xunit.v3 version, test host minimum (.NET 8 from xunit.v3 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, which is the Azure DevOps breakage from the description.
    • Verified by running the full Funcky.Xunit.v3 test suite (59 tests) against xunit.v3 4.0.2 once, locally via dotnet run --project.

    Still open here

    • A CI matrix leg that runs Funcky.Xunit.v3.Test against the latest 1.x, 2.x, 3.x and 4.x (an MSBuild property feeding the test project's xunit.v3 version; run via dotnet run --project, which sidesteps the VSTest/MTP question), so the "expected to work" rows for 2.x and 3.x in the table become "verified".
    • Bumping the repository's own test projects from xunit.v3 1.0.1 to 4.x. This brings the runner change with it and needs the Microsoft.Testing.Platform opt-in in global.json (or the mtp-off packages), so it is a change to the whole build, not only to this package.

    Listed on the 4.0.0 umbrella #1035 in the additive group. If the two remaining items are not worth a 4.0.0 slot, this issue can be closed against #1028 and the matrix leg moved to 4.1.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions