Skip to content

Releases: nunit/nunit.analyzers

NUnit Analyzers 4.0.1 - February 1, 2024

Choose a tag to compare

@mikkelbu mikkelbu released this 01 Feb 21:09
0c14047

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

Choose a tag to compare

@mikkelbu mikkelbu released this 27 Jan 21:29
bb132f0

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

  • #669 NUnit2007 does not provide codefix when .Within is used
  • #609 Drop support for VS before 2019

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)

Choose a tag to compare

@mikkelbu mikkelbu released this 27 Nov 20:52
5995304

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

  • #648 chore: Skip branch builds on PRs
  • #644 chore: Update release notes for 3.10 beta
  • #429 Drop the VSIX project

NUnit Analyzers 3.10-beta1 (and 2.10-beta1)

Choose a tag to compare

@mikkelbu mikkelbu released this 17 Nov 15:49
9d1b382

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)

Choose a tag to compare

@mikkelbu mikkelbu released this 27 Oct 18:57
fbec809

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

  • #614 NUnit2045 does not respect lambda captures
  • #607 NUnit1032 false positive when test class is static
  • #602 Bug: StackOverflowException when test calls recursive method in 3.7.

NUnit Analyzers 3.8 (and 2.8)

Choose a tag to compare

@mikkelbu mikkelbu released this 25 Sep 14:03
767ae3a

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.

NUnit Analyzers 3.7 (and 2.7)

Choose a tag to compare

@mikkelbu mikkelbu released this 16 Sep 18:49
11e0c9f

NUnit Analyzers 3.7 (and 2.7) - September 16, 2023

This release contains a lot of improvements and corrections to the supression of non-nullable fields and properties
that are assigned in setup methods (and not in constructors). We have also added suppression of:

  • CA1812 - Avoid uninstantiated internal classes - on test classes
  • CA1001 - Types that own disposable fields should be disposable - when disposed is called in TearDown methods

The release also contain some improvements to the performance of the analyzers by avoid repeated calls to
GetTypeByMetadataName. Also ValuesAttribute is now also handled by the analyzer in a similar manner as TestCaseAttribute.
Most of the work done in this release have either been driven by or made by @manfred-brands.

The release contains contributions from the following users (in alphabetical order):

Issues Resolved

Features and Enhancements

  • #585 NonNullableFieldOrPropertyIsUninitializedSuppressor doesn't check async methods called from SetUp
  • #582 NonNullableFieldOrPropertyIsUninitializedSuppressor does not detect assignments in try/finally blocks
  • #569 Added a suppressor when CA1812 fires on NUnit Test classes.
  • #568 Feature request: suppress CA1001 when Dispose is called in the TearDown method
  • #561 NUnit2021 error shown when comparing Uri and string
  • #548 Use RegisterCompilationStartAction to avoid repeated calls to GetTypeByMetadataName
  • #542 Allow the *Source Analyzers to permit Task
  • #462 DiagnosticsSuppress does not suppress CS8634
  • #344 Add a rule informing that .Within is not valid for non-numeric types.
  • #52 Reuse TestCaseAttribute logic for ValuesAttribute improvement

Bugs

  • #587 Buggy interaction between the Assert.Multiple fixer and null reference suppression
  • #580 False positive for WithinUsageAnalyzer
  • #559 FP NUnit1001: CustomTypeConverters could convert from anything
  • #549 Code Fix for NUnit2010 on Ref Structs Creates CS0306
  • #541 [NUnit2045] Incorrect refactoring
  • #535 DiagnosticSuppressor doesn't suppress values passed as arguments
  • #534 QuickFix for Assert.Multiple looses white space before and comments after bug

Tooling, Process, and Documentation

  • #579 chore: Bump Microsoft.NET.Test.Sdk
  • #578 chore(deps): Bump Microsoft.CodeAnalysis.NetAnalyzers
  • #573 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.7.0 to 17.7.1
  • #571 chore(deps): Bump System.Collections.Immutable from 6.0.0 to 7.0.0
  • #567 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.0
  • #566 Update CONTRIBUTING.md to fix link to MS documentation.
  • #560 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.6.2 to 17.6.3
  • #558 chore(deps): Bump StyleCop.Analyzers.Unstable from 1.2.0.435 to 1.2.0.507
  • #557 chore(deps): Bump Microsoft.CodeAnalysis.NetAnalyzers from 7.0.1 to 7.0.3
  • #556 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.6.1 to 17.6.2
  • #553 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.6.0 to 17.6.1
  • #551 chore(deps): Bump NUnit3TestAdapter from 4.4.2 to 4.5.0
  • #547 chore(deps): Bump CSharpIsNullAnalyzer from 0.1.300 to 0.1.495
  • #543 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.0
  • #531 Markdown fixes

NUnit Analyzers 3.6.1 (and 2.6.1) - March 10, 2023

Choose a tag to compare

@mikkelbu mikkelbu released this 10 Mar 22:22
e3a226e

NUnit Analyzers 3.6.1 (and 2.6.1) - March 10, 2023

This release of the NUnit Analyzers contain a single bug fix and some updates of dependencies.
The bug fix removes a false from NUnit1030 - "The type of parameter provided by the TestCaseSource
does not match the type of the parameter in the Test method" - when using TestCaseParameters.

The release contains contributions from the following users (in alphabetical order):

Issues Resolved

Bugs

  • #523 False positive for NUnit1030 with TestCaseParameters bug

Tooling, Process, and Documentation

  • #528 chore(deps): Bump NUnit3TestAdapter from 4.4.0 to 4.4.2
  • #527 chore(deps): Bump NUnit3TestAdapter from 4.3.1 to 4.4.0
  • #522 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.4.1 to 17.5.0

NUnit Analyzers 3.6 (and 2.6)

Choose a tag to compare

@mikkelbu mikkelbu released this 21 Feb 20:47
ec7c360

NUnit Analyzers 3.6 (and 2.6) - February 21, 2023

This release of the NUnit Analyzers improves on the analysis of nullable reference types - in particular
in case of null coalescing operator and tuple deconstruction assignments.

The release also adds two new diagnostics for the TestCaseSource attribute. The diagnostics examines the test data returned
from the TestCaseSource:

  • NUnit1029 - The number of parameters provided by the TestCaseSource does not match the number of parameters in the Test method
  • NUnit1030 - The type of parameter provided by the TestCaseSource does not match the type of the parameter in the Test method

In addition, the release also contains some bug fixes to existing analyzers, and we have added a GitHub Actions workflow
and status badge.

The release contains contributions from the following users (in alphabetical order):

The majority of the code contributions were provided by @manfred-brands.

Issues Resolved

Features and Enhancements

  • #503 DiagnosticsSuppressor doesn't suppress null coalescing operator
  • #499 DiagnosticSuppressor doesn't detect tuple deconstruction assignments
  • #442 Analyzer for TestCaseSource does not check Test method parameters

Bugs

  • #509 Giving TestCaseAttribute an explicit decimal for a parameter that is a decimal gives a Nunit 1001 error
  • #496 NUnit2045 code-fix does not correctly lift asynchronous assertions into Assert.Multiple
  • #475 Code Fix for NUnit2010 on Ref Structs Creates CS1503

Tooling, Process, and Documentation

  • #519 chore: Update year to 2023
  • #518 fix: Correct MSDN link on new pages
  • #516 Replace link to ruleset docs
  • #507 chore: Add Github Action build status badge
  • #500 Fix path to global.json
  • #497 chore(deps): Bump Microsoft.NET.Test.Sdk from 17.3.2 to 17.4.1
  • #489 Add note about works with unity3d
  • #487 chore(deps): Bump NUnit3TestAdapter from 4.2.1 to 4.3.0
  • #486 chore: Bump version to 3.6 (2.6)
  • #476 [add] GitHub Actions workflow for running test

NUnit Analyzers 3.5 (and 2.5)

Choose a tag to compare

@mikkelbu mikkelbu released this 23 Oct 20:39
cb372af

NUnit Analyzers 3.5 (and 2.5) - October 23, 2022

This release of the NUnit Analyzers only fixes the casing in a file name in the nuget file as nuget upload validation failed.

The release contains contributions from the following users (in alphabetical order):

Issues Resolved

Tooling, Process, and Documentation

  • #484 chore: Bump version to 3.5 (2.5)
  • #483 chore: NuGet.org validation is case sensitive