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...")]