Today we're shipping the first full release of the xUnit.net Analyzers package at 1.0.0!
The first commit to the analyzers project happened almost exactly 6 years ago on August 31, 2016. Marcin Dobosz was working at CenturyLink Cloud with Jim & Brad. His goal was to help developers identify the most common issues found when writing tests with xUnit.net, using his coworkers as the guinea pigs. 😄
The first official release was
0.1.0, which shipped the following May
alongside the xUnit.net 2.3 Beta 2 release. This included
15 analyzers for test authors related to non-assertion usage by test authors (things
like ensuring the correct number of parameters in
and 5 analyzers for test authors related to assertion usage (things like ensuring that
you are passing the
actual values in the
In the intervening time between that first release and today, there were ten more
public releases in the
0.x version system, usually aligned with beta
or RTM releases of the core framework.
With today's official 1.0 release, we now offer 28 non-assertion analyzers and 19 assertion analyzers, plus an entirely new category: 2 analyzers designed for developers who are writing extensions to the core framework.
These release notes reflect the entirety of the changes between 0.10.0 and 1.0.0.
dotnet build) that doesn't surface the documentation links. For example, xUnit1000's message used to read
"Test classes must be public", but now reads
"Test classes must be public. Add or change the visibility modifier of the test class to public."
ICollectionFixturebut did not accept the fixture instance via the constructor. xunit/xunit#2068
ArraySegment<T>can throw an exception when calling
.ConfigureAwait()were not properly detected. xunit/xunit.analyzers#126
xunit.abstractions. The issue is still raised, but the fixer is not available (since the reference to
LongLivedMarshalByRefObjectrequires a reference to
xunit.extensibility.execution). xunit/xunit#1574 xunit/xunit#1575