site/releases/v3/2.0.3.md
Today, we're shipping three new releases:
2.0.31.22.0 (release notes)3.1.1 (release notes)It's been 1 month since the release of 2.0.2.
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 2.0.2 to 2.0.3.
We have updated [RegisterXunitSerializer] to add a warning message when the developer tries to register a serializer for an array type. The serialization system already natively supports arrays; developers only need to provide serializers for the item type stored in the array. xunit/xunit#3294{: .issue-link }
We have improved the performance of the CecilSourceInformationProvider in several ways:
We have added a name to TraceAssertOverrideListener (which is responsible for capturing Debug.Assert and Trace.Assert failures and converting them into test failures), to make it easier to remove if needed. The name is xUnit.net. xunit/xunit#3317{: .issue-link }
BUG: We have fixed an issue where TestContext.Current.TestState.Result would not accurately reflect when a passing test has been converted to a failing test due to an exception thrown by BeforeAfterTestAttribute.After. We have also reconciled other related places where the result state was either null or wrong due to exceptions thrown during test class creation, BeforeAfterTestAttribute.Before, and Dispose/DisposeAsync. xunit/xunit#3311{: .issue-link }
We have implemented "crash detection" for v3 test projects. Runners should now correctly report the process crash, and be given the correct cleanup messages (either IDiscoveryComplete if the crash occurred during discovery, or ITestAssemblyFinished if the crash occurred during execution).
BUG: We fixed a rendering issue with the HTML report which was causing the list of test classes to appear to be progressively indented.
xunit3 and xunit3-extension templates for passing --no-restore to skip the package restore step after unfolding the template. xunit/xunit#3301{: .issue-link }We have added a new overload to TestRunner. InvokeTestMethod replaces a line of buried code that was calling the reflection invoke of the test method. This allows developers extending the definitions of test cases to provide an alternative mechanism for invoking the test method (including adding any before/after invocation logic). xunit/xunit#3299{: .issue-link }
We have introduced a new interface, ITestProcessWithExitCode, as a supplemental interface that can be implemented when implementing ITestProcess so that the exit code of the process is available. This information is used by the above mentioned crash detection feature to report the exit code of the crashed process.
xunit.v3.assert.source) had a few files that were unilaterally marked as public rather than correctly respecting XUNIT_VISIBILITY_INTERNAL, which could cause compiler failures is some situations.