site/releases/v3/3.0.1.md
Today, we're shipping three new releases:
3.0.11.24.0 (release notes)3.1.4 (release notes)It's been 1 month since the release of 3.0.0.
As always, we'd like to thank all the users who contributed to the success of xUnit.net through usage, feedback, and code. 🎉
These release notes are a list of changes from 3.0.0 to 3.0.1.
We have added CulturedFact and CulturedTheory attributes (ported from our own test project). These attributes allow the user to specify one or more override cultures to run the tests with. The test display names will be decorated with the culture name (i.e., Namespace.TestClass.TestMethod[en-US]. xunit/xunit#2182{: .issue-link }
We have added support for serializing tuples, so long as all the values in the tuple are serializable. xunit/xunit#3361{: .issue-link }
We have updated the selection order of custom serializers (that is, objects which implement IXunitSerializer) such that user-provided serializers will be chosen before the built-in serializers. This should allow users to register more specialized serializers for objects that might otherwise be serialized using built-in functionality (e.g., types that implement IFormattable and IParsable<>). xunit/xunit#3367{: .issue-link }
We have added support for test attachments to our TRX report generator. xunit/xunit#3363{: .issue-link }
We have updated our CTRF report generator to comply with updates to the CTRF schema. This includes:
.results.tests[].line, from .results.tests[].extra.fileLine..results.tests[].attachments[] (an array of the new attachment object), from .results.tests[].extra.attachments (an object with one property per attachment). Note that attachments are now written to disk with a local file reference, whereas they previously were stored inline in the JSON.We have added the ability to control test assembly unique IDs, to support more repeatable randomization across test assemblies built in multiple environments (i.e., a developer machine and a CI server). For more information, see the stable randomization section of the "What's New in xUnit.net v3?" documentation page. xunit/xunit#3365{: .issue-link }
BUG: We fixed an issue with CTRF generation that was emitting incorrect timestamps, which caused execution time calculations to be too-small by a factor of 1000. xunit/xunit#3358{: .issue-link }
BUG: We fixed an issue where the ordering of test assemblies and test collections could be inconsistent, depending on how the test assembly was run (typically manifested in the order being reversed). xunit/xunit#3359{: .issue-link }
We have added support for unsafe pointers to Assert.Null and Assert.NotNull. (Note that consumers of source-based assertions, such as via xunit.v3.assert.source or Git Submodule, must define the compilation symbol XUNIT_POINTERS and add <AllowUnsafeBlocks>true</AllowUnsafeBlocks> to their .csproj file to enable unsafe pointer support.) xunit/xunit#3346{: .issue-link }
BUG: We fixed an issue with field exclusions in Assert.EquivalentWithExclusions where we could accidentally exclude inappropriate members. xunit/xunit#3347{: .issue-link }