Skip to content

Latest commit

 

History

History
73 lines (50 loc) · 1.95 KB

NUnit2041.md

File metadata and controls

73 lines (50 loc) · 1.95 KB

NUnit2041

Incompatible types for comparison constraint

Topic Value
Id NUnit2041
Severity Error
Enabled True
Category Assertion
Code ComparableTypesAnalyzer

Description

The comparison constraint always fails as the actual and the expected value are not comparable.

Motivation

class Foo { }
class Bar { }

var foo = new Foo();
var bar = new Bar();

Assert.That(foo, Is.GreaterThan(bar));

There is no comparisons defined between instances of types Foo and Bar, therefore such assertion will always fail.

How to fix violations

Fix your assertion (i.e. fix actual or expected value) or implement IComparable<Bar> on Foo.

Configure severity

Via ruleset file

Configure the severity per project, for more info see MSDN.

Via .editorconfig file

# NUnit2041: Incompatible types for comparison constraint
dotnet_diagnostic.NUnit2041.severity = chosenSeverity

where chosenSeverity can be one of none, silent, suggestion, warning, or error.

Via #pragma directive

#pragma warning disable NUnit2041 // Incompatible types for comparison constraint
Code violating the rule here
#pragma warning restore NUnit2041 // Incompatible types for comparison constraint

Or put this at the top of the file to disable all instances.

#pragma warning disable NUnit2041 // Incompatible types for comparison constraint

Via attribute [SuppressMessage]

[System.Diagnostics.CodeAnalysis.SuppressMessage("Assertion",
    "NUnit2041:Incompatible types for comparison constraint",
    Justification = "Reason...")]