Releases: nunit/nunit.analyzers
NUnit Analyzers 4.4 - November 13, 2024
NUnit Analyzers 4.4 - November 13, 2024
This release of the NUnit Analyzers adds handling of Assert.IsAssignableFrom
/Assert.IsNotAssignableFrom
and
Assert.Positive
/Assert.Negative
. Also insertion of trivia for code fixes for NUnit2007
and NUnit2046
have been improved.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
- #790 NUnit.Analyzers 4.3.0 missed an Assert.IsAssignableFrom that caused a build error after upgrading to latest NUnit 4.2.2
- #789 NUnit.Analyzers 4.3.0 missed an Assert.Positive that caused a build error after upgrading to latest NUnit 4.2.2
Bugs
Tooling, Process, and Documentation
NUnit Analyzers 4.3 - August 9, 2024
NUnit Analyzers 4.3 - August 9, 2024
This release of the NUnit Analyzers contains some bug fixes to existing analyzers and code fixes - among other
improvements to trivia when using the code fix of NUnit2049.
For new features we now warn against using TestContext.Write
as this will be obsolete in NUnit at some point;
NUnit1001 now recognises and check generic TestCase attributes; and we have added a new analyzer and code fix for
simplifying usages of ValuesAttribute
.
The release contains contributions from the following users (in alphabetical order):
- @andrewimcclement
- @Bartleby2718
- @DrPepperBianco
- @KaiBNET
- @maettu-this
- @manfred-brands
- @mikkelbu
- @RenderMichael
- @SeanKilleen
- @trampster
Issues Resolved
Features and Enhancements
- #770 Add rule to detect calls to TestContext.Write methods and CodeFix to replace usages with Out.Write
- #767 Augment NUnit1001 to recognized and check generic TestCase attributes
- #755 New diagnostic: The Values attribute can be simplified.
Bugs
- #766 Error when TearDown method is defined in partial test classes - Syntax node is not within syntax tree
- #743 NUnit1032 (missing Dispose), if dispose is wrapped in "(… as IDisposable)?.Dispose()"
- #739 Null suppression does not work when Assert is fully qualified
- #713 Code fix for NUnit2049 places the comma at a wrong place and messes up indentation bug
Tooling, Process, and Documentation
- #764 Update the solution file
- #761 Update nunit.analyzers.nuspec to specify that NUnit.Analyzers v4 is intended to be used with NUnit 4.
- #756 error NUnit1032 is incorrect when InstancePerTestCase and constructor is used to initialize IDisposible
- #741 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.9.0 to 17.10.0 in /src
- #737 Update NUnit2013.md to fix code block
- #736 chore: bump version
- #734 Why dropping composite message formatting support also for Assert.Pass/Fail/... where there are no actual and constraint parameters?
NUnit Analyzers 4.2 - April 24, 2024
NUnit Analyzers 4.2 - April 24, 2024
This release of the Analyzers extends NUnit2050 to also cover Assume
and Nunit1032 to consider dispose of a type
having explicit interface implementation. Furthermore, named parameters are now handled correctly codefixes for
classical asserts, and NUnit2010 improves the logic for determining Equals
methods.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
- #731 Add test for wrapping conditional expression in parenthesis for NUnit2050
- #720 Replace UpdateStringFormatToFormattableString with String.Format
- #719 NUnit2050 should cover Assume
- #710 Nunit1032 - consider dispose of a type having explicit interface implementation
Bugs
- #728 NUnit2010 - do not consider Equals call if it doesn't override Object.Equals
- #712 [bug] Code fix for NUnit2005 does not correctly fix Assert.AreEqual if named parameters are used in unexpected order
Tooling, Process, and Documentation
NUnit Analyzers 4.1 - March 16, 2024
NUnit Analyzers 4.1 - March 16, 2024
This release of the Analyzers extends the suppression of nullable warnings to also respect assumptions -
expressed via Assume.That
. Also nullable warnings are suppressed even in the context of the
null-forgiving operator !
, and NUnit2010 is extended to also cover is
pattern expressions - e.g.
is null
and more general integer patterns as is < 0 or >= 1
.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
- #693 Possibly Null Reference Warning should be suppressed for Assume
- #691 Extent rule NUnit2010 to detect 'is null'
- #679 Null suppression doesn't work when the body has a null suppression
Bugs
- #700 CodeFix for Assert with null message causes ambiguous code.
- #689 Incorrect constraint model transformation for named parameters
Tooling, Process, and Documentation
NUnit Analyzers 4.0.1 - February 1, 2024
NUnit Analyzers 4.0.1 - February 1, 2024
Small release that fixes a problem with the 4.0 release when combining TestCaseSource
and CancelAfter
.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Bugs
- #685 error NUnit1029: The TestCaseSource provides '1' parameter(s), but the Test method expects '1' parameter(s)
Tooling, Process, and Documentation
- #684 chore: bump-version
NUnit Analyzers 4.0
NUnit Analyzers 4.0 - January 27, 2024
Version 4 of the NUnit analyzers drops the support for older releases of Visual Studio. I.e.
releases of Visual Studio that are older than Visual Studio 2019 16.3. In addition, this release
contains various bug fixes to existing analyzers, support of the CancelAfterAttribute
that was introduced in NUnit 4, and extends the codefix for NUnit2007 to also work when
.Within
is used.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
Bugs
- #663 NUnit1027 fired when CancellationToken and [CancelAfter] is given
- #659 NUnit1032 throws an exception in a specific configuration
- #656 NUnit1028 warns about overridden methods
- #635 ArgumentException in DisposeFieldsAndPropertiesInTearDownAnalyzer
Tooling, Process, and Documentation
- #676 chore: markdownlint-cli2-config is removed use flag instead
- #668 chore(deps): Bump StyleCop.Analyzers.Unstable from 1.2.0.507 to 1.2.0.556
- #662 chore: Bump NUnit 4 to version 4.0.1
- #660 chore: Bump to NUnit 4
- #654 chore: Bump version
- #630 Update NUnit Analyzer docs to respect 120-character docs rule documentation
- #508 Restore "File version" and "Product version" in analyzer dlls
NUnit Analyzers 3.10 (and 2.10)
NUnit Analyzers 3.10 (and 2.10) - November 27, 2023
This release adds a couple of improvements to the analyzers:
- Check that users don't accidentally specify CallerArgumentExpression parameters
- Relax analyzers for added support for IAsyncEnumerable on *Source attributes
These improvements extend the functionality in the beta that added support for NUnit 4 and
for migrating to NUnit 4. Especially, the handling of the movement of classic asserts into a new namespace
NUnit.Framework.Legacy and of the improved assert result messages - for more information see
https://docs.nunit.org/articles/nunit/Towards-NUnit4.html. The analyzers can help updating the
classic assert and fix the assert messages.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
- #639 Rule to check users don't accidentally specify CallerArgumentExpression parameters
- #634 Relax analyzers for added support for IAsyncEnumerable on *Source attributes
Tooling, Process, and Documentation
NUnit Analyzers 3.10-beta1 (and 2.10-beta1)
NUnit Analyzers 3.10-beta1 (and 2.9-beta1) - November 17, 2023
This beta adds support for the upcoming NUnit 4 - see pull request #612 - which solves the following issues
- #620 Make Classic Conversion rule for CollectionAssert improvement
- #618 Make Classic Conversion rule for StringAssert
- #617 Update .Within makes no sense rule
- #610 Ensure Test Code works with NUnit4
- #606 Support for NUnit 4 legacy asserts
- #562 Warn use of params for assertion messages
The primary change is the handling of the movement of classic asserts into a new namespace
NUnit.Framework.Legacy
and of the improved assert result messages - for more information see
https://docs.nunit.org/articles/nunit/Towards-NUnit4.html. The analyzers can help updating the
classic assert and fix the assert messages.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
- #620 Make Classic Conversion rule for CollectionAssert improvement
- #618 Make Classic Conversion rule for StringAssert
- #617 Update .Within makes no sense rule
- #615 Add support for Assert.MultipleAsync
- #610 Ensure Test Code works with NUnit4
- #606 Support for NUnit 4 legacy asserts
- #562 Warn use of params for assertion messages
Bugs
- #632 NUnit1031 doesn't seem to work with Generic parameters
- #631 NUnit1001/NUnit1031 don't observe null forgiveness operator
- #621 NUnit2025 fires unnecessarily
Tooling, Process, and Documentation
- #633 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.7.2 to 17.8.0
NUnit Analyzers 3.9 (and 2.9)
NUnit Analyzers 3.9 (and 2.9) - October 27, 2023
This release contains bugfixes to NUnit2045 - Use Assert.Multiple - and NUnit1032 -
An IDisposable field/property should be Disposed in a TearDown method - and corrects
a StackOverflowException when tests calls methods recursively.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Bugs
NUnit Analyzers 3.8 (and 2.8)
NUnit Analyzers 3.8 (and 2.8) - September 25, 2023
This release contains a fix to the WithinUsageAnalyzer and handling of false duplicates when
combining NUnit1032 - An IDisposable field/property should be Disposed in a TearDown method -
with LifeCycle.InstancePerTestCase.
The release contains contributions from the following users (in alphabetical order):
Issues Resolved
Features and Enhancements
- #595 NUnit1032 false positive in LifeCycle.InstancePerTestCase test fixture using constructor
Bugs
- #596 WithinUsageAnalyzer threw an exception of type 'System.IndexOutOfRangeException'
Tooling, Process, and Documentation
- #598 Update NUnit1032.md to fix typo Dipose -> Dispose.