Today, we're shipping xUnit.net 2.1. This includes 2.1 RTM builds of the core framework and the Visual Studio runner.
It has been approximately 6 months since we shipped 2.0. Since that release was a ground-up rewrite, we spent the intervening time listening to developer feedback, improving the core framework as well as adding features that we weren't able to get into 2.0.
The DNX runner continues to remain in beta, tracking individual releases of the
DNX framework; we expect that it will reach RTM when DNX does, early in 2016.
Today's release includes a refreshed DNX runner Beta 5 build
2.1.0-beta5a-build188) which is linked against xUnit.net 2.1 RTM.
Once again, we'd like to thank all the users who contributed to the success of xUnit.net through usage, feedback, and code contributions. With this release including new support for Universal Windows Applications, we leaned heavily again on Oren Novotny and the team at Microsoft responsible for the Universal Windows tooling.
App.config) was part of the 2.0 release, but only available to desktop unit tests. Configuration in 2.1 now includes JSON support, and is available on all platforms (assuming that the runner correctly reads and obeys the configuration file, of course). For more information, see Configuration Files
IAsyncLifetimeinterface, which can be implemented by test classes and fixture classes to get asynchronous lifetime support (creation and disposal). This should make writing asynchronous setup and teardown code much simpler, because developers can use the
[ClassData]attribute has be brought back.
BeforeAfterTestAttributecan now be decorated onto test collection definition classes, and will be run for all tests in the test collection.
AssemblyRunnerclass was added to the runner utility libraries, that makes it substantially simpler for users who want to leverage xUnit.net to do non-testing activities (for example, to write a Best Practices Analyzer). Sample code: https://github.com/xunit/samples.xunit/blob/main/TestRunner/Program.cs
xunit.execution.*.dll) that shipped in 2.0 were consolidated down in two:
xunit.execution.desktop.dll(for desktop usage, including AppDomain support) and
xunit.execution.dotnet.dll(for all other usage, including DNX, Windows, Windows Phone, Android, and iOS). By reducing the execution library count from 7 to 2, it makes it simpler for developers to provide extensions to the testing framework.
xunit.runner.utility.*.dll) were also reduced down to two:
xunit.runner.utility.desktop.dll(which can run all tests) and
xunit.runner.utility.dotnet.dll(which can run tests linked again
xunit.execution.dotnet.dll). Since the runner libraries are intended to be backward compatible, they can run tests written against xUnit.net 1.9.2 and 2.0.
The following individual releases contributed to 2.1: