Core Framework v3 3.2.2 2026 January 14
Today, we're shipping two new releases:
- xUnit.net Core Framework v3
3.2.2 - xUnit.net Analyzers
1.27.0(release notes)
It's been 7 weeks since the release of 3.2.1.
As always, we'd like to thank all the users who contributed to the success of xUnit.net through usage, feedback, and code. 🎉
Release Notes
These release notes are a list of changes from 3.2.1 to 3.2.2.
Core Framework
- We've updated the XML documentation for
[ClassData]to indicate all the supported data source types in v3 (it previously only listedIEnumerable<object?[]>, which was the sole compatible implementation type for v2).
Assertion Library
We are shipping a Native AOT compatible version of the assertion library in
xunit.v3.assert.aot.The minimum target framework for this release is .NET 9, due to dependencies on
[OverloadResolutionPriorityAttribute]to resolve ambiguities that the compiler would otherwise falter on (and force you to write explicit casts in your test code).For source-based consumers (using either
xunit.v3.assert.sourceor Git submodule), we have updated the README to indicate that you should define the symbolXUNIT_AOTif you want to make your own Native AOT compatible build of the library from source.Note
Native AOT compatibility is currently only supported for the assertion library. There is more ongoing work to make the framework itself Native AOT compatible that is anticipated to land in a future major release.
Runners
- The TRX result report now includes the string
xunit.v3in theadapterTypeNameso that it can more easily be identified programmatically. xunit/xunit#3463
Runner Utility
- BUG: We fixed an issue where
AssemblyHelpershould've been helping to resolve missing assembly dependencies with .NET, but was NOOPing instead.
Templates
We have updated the
xunit3templates with new command line switches:--test-runner [mtp-v2|mtp-v1|vstest]to indicate the desired runner fordotnet testand Test Explorer. The resulting project only referencesxunit.runner.visualstudionow when you ask forvstest, as that package is not required for supporting Microsoft Testing Platform.
Default value:mtp-v2--command-line [xunit|mtp]to indicate the desired command line switches fordotnet run.
Default value:xunit
When asking for a
--test-runnerwith Microsoft Testing Platform, we will also attempt to update yourglobal.jsonas is required fordotnet testwith the .NET 10 SDK. Note that while this will be successful for users who are using .NET SDK 9 or 10, it will result in a warning that the change was not successful if you're using .NET SDK 8. This warning can be safely ignored, since this setting is only consumed by .NET 10 SDK. For more information, see Using .NET SDK version 10 or later in the Microsoft Testing Platform getting started documentation.Note
This only changes the defaults used when creating new projects. The
xunit.v3andxunit.v3.coreversion3.*NuGet packages still default to using Microsoft Testing Platform v1, for backward compatibility reasons.
Microsoft Testing Platform
We have improved the error message when indicating that report filenames may not include path characters, to print the problematic file name in question. xunit/xunit#3461
BUG We fixed an inconsistency with theory data pre-enumeration default behavior (it was on for discovery, but off for execution). It is now always on, so that users can both discover and run individual theory data rows from the command line. microsoft/testfx#7163
BUG We fixed an issue where we were ignoring discovery requests that included test node UID filters. xunit/xunit#3465