A method is detected as test method if marked with one of the following attributes [TestMethod] or [DataTestMethod] (for
mstest), [Fact] or [Theory] (for xunit) or [Test], [TestCase], [TestCaseSource] or
[Theory] (for nunit). However, whether or not they have a test attribute, non-public methods are not recognized as tests,
and therefore not executed. Neither are async void methods, or methods with generics anywhere in their signatures.
[TestMethod]
void TestNullArg() // Noncompliant; method is not public
{ /* ... */ }
[TestMethod]
public async void MyIgnoredTestMethod() // Noncompliant; this is an 'async void' method
{ /* ... */ }
[TestMethod]
public void MyIgnoredGenericTestMethod<T>(T foo) // Noncompliant; method has generics in its signature
{ /* ... */ }
[TestMethod]
public void TestNullArg()
{ /* ... */ }
Accessibility is ignored for xUnit Fact test methods, since they do not need to be public.
[Theory] test methods in xUnit and [TestCase] and [TestCaseSource] test methods in nunit can be generic.