Skip to content

Commit

Permalink
Suppress CA1822 (method can be marked as static) for TUnit methods
Browse files Browse the repository at this point in the history
  • Loading branch information
thomhurst committed Jan 20, 2025
1 parent 45caa45 commit c8eee31
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 21 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,11 @@ void Add(INamedTypeSymbol? symbol)
Add(wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.NUnitFrameworkTestAttribute));
Add(wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.NUnitFrameworkTearDownAttribute));

// TUnit Attributes
Add(wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.TUnitTestAttribute));
Add(wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.TUnitBeforeAttribute));
Add(wellKnownTypeProvider.GetOrCreateTypeByMetadataName(WellKnownTypeNames.TUnitAfterAttribute));

return builder?.ToImmutable() ?? ImmutableArray<INamedTypeSymbol>.Empty;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,28 +510,32 @@ End Class
}

[Theory]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.TestInitialize", true, false, false)]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod", true, false, false)]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethod", true, false, false)]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanup", true, false, false)]
[InlineData("Xunit.Fact", false, false, true)]
[InlineData("Xunit.Theory", false, false, true)]
[InlineData("CustomxUnit.WpfFact", false, false, true)]
[InlineData("NUnit.Framework.OneTimeSetUp", false, true, false)]
[InlineData("NUnit.Framework.OneTimeTearDown", false, true, false)]
[InlineData("NUnit.Framework.SetUp", false, true, false)]
[InlineData("NUnit.Framework.TearDown", false, true, false)]
[InlineData("NUnit.Framework.Test", false, true, false)]
[InlineData("NUnit.Framework.TestCase(\"asdf\")", false, true, false)]
[InlineData("NUnit.Framework.TestCaseSource(\"asdf\")", false, true, false)]
[InlineData("NUnit.Framework.Theory", false, true, false)]
public async Task NoDiagnostic_TestAttributesAsync(string testAttributeData, bool isMSTest, bool isNUnit, bool isxunit)
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.TestInitialize", true, false, false, false)]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod", true, false, false, false)]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethod", true, false, false, false)]
[InlineData("Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanup", true, false, false, false)]
[InlineData("Xunit.Fact", false, false, true, false)]
[InlineData("Xunit.Theory", false, false, true, false)]
[InlineData("CustomxUnit.WpfFact", false, false, true, false)]
[InlineData("NUnit.Framework.OneTimeSetUp", false, true, false, false)]
[InlineData("NUnit.Framework.OneTimeTearDown", false, true, false, false)]
[InlineData("NUnit.Framework.SetUp", false, true, false, false)]
[InlineData("NUnit.Framework.TearDown", false, true, false, false)]
[InlineData("NUnit.Framework.Test", false, true, false, false)]
[InlineData("NUnit.Framework.TestCase(\"asdf\")", false, true, false, false)]
[InlineData("NUnit.Framework.TestCaseSource(\"asdf\")", false, true, false, false)]
[InlineData("NUnit.Framework.Theory", false, true, false, false)]
[InlineData("TUnit.Core.Test", false, false, false, true)]
[InlineData("TUnit.Core.Before(Test)", false, false, false, true)]
[InlineData("TUnit.Core.After(Test)", false, false, false, true)]
public async Task NoDiagnostic_TestAttributesAsync(string testAttributeData, bool isMSTest, bool isNUnit, bool isxunit, bool isTUnit)
{
var referenceAssemblies = (isMSTest, isNUnit, isxunit) switch
var referenceAssemblies = (isMSTest, isNUnit, isxunit, isTUnit) switch
{
(true, false, false) => AdditionalMetadataReferences.DefaultWithMSTest,
(false, true, false) => AdditionalMetadataReferences.DefaultWithNUnit,
(false, false, true) => AdditionalMetadataReferences.DefaultWithXUnit,
(true, false, false, false) => AdditionalMetadataReferences.DefaultWithMSTest,
(false, true, false, false) => AdditionalMetadataReferences.DefaultWithNUnit,
(false, false, true, false) => AdditionalMetadataReferences.DefaultWithXUnit,
(false, false, false, true) => AdditionalMetadataReferences.DefaultWithTUnit,
_ => throw new InvalidOperationException("Invalid combination of test framework")
};

Expand Down
3 changes: 3 additions & 0 deletions src/Test.Utilities/AdditionalMetadataReferences.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ public static class AdditionalMetadataReferences
public static ReferenceAssemblies DefaultWithMSTest { get; } = Default
.AddPackages(ImmutableArray.Create(new PackageIdentity("MSTest.TestFramework", "2.1.0")));

public static ReferenceAssemblies DefaultWithTUnit { get; } = Default
.AddPackages(ImmutableArray.Create(new PackageIdentity("TUnit", "0.6.154")));

public static ReferenceAssemblies DefaultWithAsyncInterfaces { get; } = Default
.AddPackages(ImmutableArray.Create(new PackageIdentity("Microsoft.Bcl.AsyncInterfaces", "1.1.0")));

Expand Down
4 changes: 3 additions & 1 deletion src/Utilities/Compiler/WellKnownTypeNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -625,6 +625,8 @@ internal static class WellKnownTypeNames
public const string XunitFactAttribute = "Xunit.FactAttribute";
public const string XunitSdkDataAttribute = "Xunit.Sdk.DataAttribute";
public const string XunitTraitAttribute = "Xunit.TraitAttribute";

public const string TUnitTestAttribute = "TUnit.Core.TestAttribute";
public const string TUnitBeforeAttribute = "TUnit.Core.BeforeAttribute";
public const string TUnitAfterAttribute = "TUnit.Core.AfterAttribute";
}
}

0 comments on commit c8eee31

Please sign in to comment.