NUnit1017
The specified source is not static
| Topic | Value |
|---|---|
| Id | NUnit1017 |
| Severity | Error |
| Enabled | True |
| Category | Structure |
| Code | TestCaseSourceUsesStringAnalyzer |
Description
The specified source must be static.
Motivation
To prevent tests that will fail at runtime due to improper construction.
How to fix violations
Example Violation
public class MyTestClass
{
[TestCaseSource(nameof(DivideCases))]
public void DivideTest(int n, int d, int q)
{
ClassicAssert.AreEqual(q, n / d);
}
object[] DivideCases =
{
new object[] { 12, 3, 4 },
new object[] { 12, 2, 6 },
new object[] { 12, 4, 3 }
};
}
Explanation
In the sample above, DivideCases is not a static field.
However, sources specified by TestCaseSource
must be static.
Fix
Make the source static:
public class MyTestClass
{
[TestCaseSource(nameof(DivideCases))]
public void DivideTest(int n, int d, int q)
{
ClassicAssert.AreEqual(q, n / d);
}
static object[] DivideCases =
{
new object[] { 12, 3, 4 },
new object[] { 12, 2, 6 },
new object[] { 12, 4, 3 }
};
}
Configure severity
Via ruleset file
Configure the severity per project, for more info see MSDN.
Via .editorconfig file
# NUnit1017: The specified source is not static
dotnet_diagnostic.NUnit1017.severity = chosenSeverity
where chosenSeverity can be one of none, silent, suggestion, warning, or error.
Via #pragma directive
#pragma warning disable NUnit1017 // The specified source is not static
Code violating the rule here
#pragma warning restore NUnit1017 // The specified source is not static
Or put this at the top of the file to disable all instances.
#pragma warning disable NUnit1017 // The specified source is not static
Via attribute [SuppressMessage]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Structure",
"NUnit1017:The specified source is not static",
Justification = "Reason...")]