private static ImmutableArray <INamedTypeSymbol> GetSkippedAttributes(Compilation compilation)
        {
            ImmutableArray <INamedTypeSymbol> .Builder builder = null;

            void Add(INamedTypeSymbol symbol)
            {
                if (symbol != null)
                {
                    builder = builder ?? ImmutableArray.CreateBuilder <INamedTypeSymbol>();
                    builder.Add(symbol);
                }
            }

            Add(WellKnownTypes.WebMethodAttribute(compilation));

            // MSTest attributes
            Add(WellKnownTypes.TestInitializeAttribute(compilation));
            Add(WellKnownTypes.TestMethodAttribute(compilation));
            Add(WellKnownTypes.DataTestMethodAttribute(compilation));
            Add(WellKnownTypes.TestCleanupAttribute(compilation));

            // XUnit attributes
            Add(WellKnownTypes.XunitFact(compilation));
            Add(WellKnownTypes.XunitTheory(compilation));

            // NUnit Attributes
            Add(WellKnownTypes.NunitSetUp(compilation));
            Add(WellKnownTypes.NunitOneTimeSetUp(compilation));
            Add(WellKnownTypes.NunitOneTimeTearDown(compilation));
            Add(WellKnownTypes.NunitTest(compilation));
            Add(WellKnownTypes.NunitTestCase(compilation));
            Add(WellKnownTypes.NunitTestCaseSource(compilation));
            Add(WellKnownTypes.NunitTheory(compilation));
            Add(WellKnownTypes.NunitTearDown(compilation));

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