NUnit1033
The Write methods on TestContext will be marked as Obsolete and eventually removed
Topic | Value |
---|---|
Id | NUnit1033 |
Severity | Warning |
Enabled | True |
Category | Structure |
Code | TestContextWriteIsObsoleteAnalyzer |
Description
Direct Write
calls should be replaced with Out.Write
.
Future version of NUnit will first mark the .Write
methods on TestContext
as Obsolete
and eventually remove them.
This rule allows updating your code before the methods are removed.
Motivation
The Write
methods are simple wrappers calling Out.Write
.
There is no wrapper for Error
which always required to use TestContext.Error.Write
.
Besides this being inconsistent, later versions of .NET added new overloads,
e.g. for ReadOnlySpan<char>
and async
methods like WriteAsync
.
Instead of adding more and more dummy wrappers, it was decided that user code should use
the Out
property and then can use any Write
overload available on TextWriter
.
How to fix violations
Simply insert .Out
between TestContext
and .Write
.
TestContext.WriteLine("This isn't right");
becomes
TestContext.Out.WriteLine("This isn't right");
Configure severity
Via ruleset file
Configure the severity per project, for more info see MSDN.
Via .editorconfig file
# NUnit1033: The Write methods on TestContext will be marked as Obsolete and eventually removed
dotnet_diagnostic.NUnit1033.severity = chosenSeverity
where chosenSeverity
can be one of none
, silent
, suggestion
, warning
, or error
.
Via #pragma directive
#pragma warning disable NUnit1033 // The Write methods on TestContext will be marked as Obsolete and eventually removed
Code violating the rule here
#pragma warning restore NUnit1033 // The Write methods on TestContext will be marked as Obsolete and eventually removed
Or put this at the top of the file to disable all instances.
#pragma warning disable NUnit1033 // The Write methods on TestContext will be marked as Obsolete and eventually removed
Via attribute [SuppressMessage]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Structure",
"NUnit1033:The Write methods on TestContext will be marked as Obsolete and eventually removed",
Justification = "Reason...")]