Back to Xunit

Core Framework v2 2.9.0

site/releases/v2/2.9.0.md

latest4.2 KB
Original Source

Today, we're shipping three new releases:

  • xUnit.net Core Framework v2 2.9.0
  • xUnit.net Analyzers 1.15.0 (release notes)
  • xUnit.net Visual Studio adapter 2.8.2 (release notes)

It's been 6 weeks since the release of 2.8.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 comprehensive list of changes from 2.8.1 to 2.9.0.

Core Framework

  • We have removed the two obsoleted overloads of AssemblyRunner.Start() which were causing compiler issues. The second overload was introduced in 2.8.0, and then a new third version was added in 2.8.1 while obsoleting the ones causing the compiler issues. This removal is why we have bumped the version to 2.9.0. xunit/xunit#2922{: .issue-link }

  • Exceptions thrown by implementations of ITestCollectionOrderer or ITestCaseOrderer will now raise catastrophic failures rather than just being logged as diagnostic messages. xunit/xunit#2094{: .issue-link }

  • Due to performance issues related to ultra-low core count CI machines, we have ensured that the minimum system thread pool size used by the conservative parallelization algorithm is 4. Note that this does not change the the number of tests that can run in parallel, if your max parallel threads is set to less than 4; this just ensures that the system thread pool always has a minimum size for things that might be using the thread pool (in addition to the conservative parallelization algorithm). xunit/xunit#2955{: .issue-link }

  • BUG: We were mistakenly trying to serialize (with IXunitSerializable) generic argument types (i.e., typeof(T) for IEnumerable<T>), causing a catastrophic failure during deserialization. We have ensured that we no longer try to serialize these types, so using them in your theory data will make the data non-serializable (and thus in Test Explorer in Visual Studio, you will not be able to run individual data rows for that test), though the tests will now run successfully. xunit/xunit#1916{: .issue-link }

  • BUG: Due to reusing an instance of TestOutputHelper, it was previously possible to log messages outside the legal time for logging, and those messages would be attributed to the next test run in the same test class. Those attempts to log messages outside the legal time will now correctly raise InvalidOperationException indicating that there is no currently active test. xunit/xunit#2377{: .issue-link }

Assertion Library

  • Assert.Equivalent will no longer check properties which are marked as [Obsolete].

  • BUG We fixed an issue where Assert.Equal might cause a stack overflow for two items that were actually pointing to the same in-memory reference. xunit/xunit#2271{: .issue-link }

  • BUG: We fixed an issue with Assert.Equivalent incorrectly detecting circular references with types that overrode Equals. xunit/xunit#2939{: .issue-link }

  • We have updated xunit.assert.source to support users who are compiling with netstandard2.1. This fixes an issue where users were seeing potential analyzer warnings related to usages of string-related functions that should be using StringComparison (signatures of which were not available in netstandard2.0).

Runners

  • We have added an environment variable XUNIT_HIDE_PASSING_OUTPUT_DIAGNOSTICS which, if it exists with any non-empty value, will trigger runners to not print out passing tests with output when you are running with diagnostic messages enabled. We've opened an discussion related to this, because we'd like to understand how widespread the problem of "output overload" is, and whether this should be hoisted up to be a configuration file-level feature. xunit/xunit#2969{: .issue-link } dotnet/runtime#103445{: .issue-link }