コード例 #1
0
        /// <summary>
        /// Gets the trait values from the Category attribute.
        /// </summary>
        /// <param name="traitAttribute">The trait attribute containing the trait values.</param>
        /// <returns>The trait values.</returns>
        public IEnumerable <KeyValuePair <string, string> > GetTraits(IAttributeInfo traitAttribute)
        {
            TargetFrameworkMonikers frameworks = (TargetFrameworkMonikers)traitAttribute.GetConstructorArguments().First();

            return(DiscovererHelpers.TestFrameworkApplies(frameworks) ?
                   new[] { new KeyValuePair <string, string>(XunitConstants.Category, XunitConstants.Failing) } :
                   Array.Empty <KeyValuePair <string, string> >());
        }
コード例 #2
0
        /// <summary>
        /// Gets the trait values from the Category attribute.
        /// </summary>
        /// <param name="traitAttribute">The trait attribute containing the trait values.</param>
        /// <returns>The trait values.</returns>
        public IEnumerable <KeyValuePair <string, string> > GetTraits(IAttributeInfo traitAttribute)
        {
            IEnumerable <object> ctorArgs = traitAttribute.GetConstructorArguments();

            Debug.Assert(ctorArgs.Count() >= 2);

            string                  issue      = ctorArgs.First().ToString();
            TestPlatforms           platforms  = TestPlatforms.Any;
            TargetFrameworkMonikers frameworks = TargetFrameworkMonikers.Any;
            TestRuntimes            runtimes   = TestRuntimes.Any;
            Type calleeType = null;

            string[] conditionMemberNames = null;

            foreach (object arg in ctorArgs.Skip(1)) // First argument is the issue number.
            {
                if (arg is TestPlatforms)
                {
                    platforms = (TestPlatforms)arg;
                }
                else if (arg is TargetFrameworkMonikers)
                {
                    frameworks = (TargetFrameworkMonikers)arg;
                }
                else if (arg is TestRuntimes)
                {
                    runtimes = (TestRuntimes)arg;
                }
                else if (arg is Type)
                {
                    calleeType = (Type)arg;
                }
                else if (arg is string[])
                {
                    conditionMemberNames = (string[])arg;
                }
            }

            if (calleeType != null && conditionMemberNames != null)
            {
                if (!DiscovererHelpers.Evaluate(calleeType, conditionMemberNames))
                {
                    yield return(new KeyValuePair <string, string>(XunitConstants.Category, XunitConstants.Failing));
                }
            }
            else if (DiscovererHelpers.TestPlatformApplies(platforms) &&
                     DiscovererHelpers.TestRuntimeApplies(runtimes) &&
                     DiscovererHelpers.TestFrameworkApplies(frameworks))
            {
                yield return(new KeyValuePair <string, string>(XunitConstants.Category, XunitConstants.Failing));
            }
        }
コード例 #3
0
ファイル: DiscovererHelpers.cs プロジェクト: billwert/arcade
        internal static IEnumerable <KeyValuePair <string, string> > EvaluateArguments(IEnumerable <object> ctorArgs, string category, int skipFirst = 1)
        {
            Debug.Assert(ctorArgs.Count() >= 2);

            TestPlatforms           platforms  = TestPlatforms.Any;
            TargetFrameworkMonikers frameworks = TargetFrameworkMonikers.Any;
            TestRuntimes            runtimes   = TestRuntimes.Any;
            Type calleeType = null;

            string[] conditionMemberNames = null;

            foreach (object arg in ctorArgs.Skip(skipFirst)) // First argument is the issue number or reason.
            {
                if (arg is TestPlatforms)
                {
                    platforms = (TestPlatforms)arg;
                }
                else if (arg is TargetFrameworkMonikers)
                {
                    frameworks = (TargetFrameworkMonikers)arg;
                }
                else if (arg is TestRuntimes)
                {
                    runtimes = (TestRuntimes)arg;
                }
                else if (arg is Type)
                {
                    calleeType = (Type)arg;
                }
                else if (arg is string[])
                {
                    conditionMemberNames = (string[])arg;
                }
            }

            if (calleeType != null && conditionMemberNames != null)
            {
                if (DiscovererHelpers.Evaluate(calleeType, conditionMemberNames))
                {
                    yield return(new KeyValuePair <string, string>(XunitConstants.Category, category));
                }
            }
            else if (DiscovererHelpers.TestPlatformApplies(platforms) &&
                     DiscovererHelpers.TestRuntimeApplies(runtimes) &&
                     DiscovererHelpers.TestFrameworkApplies(frameworks))
            {
                yield return(new KeyValuePair <string, string>(XunitConstants.Category, category));
            }
        }
コード例 #4
0
        /// <summary>
        /// Gets the trait values from the Category attribute.
        /// </summary>
        /// <param name="traitAttribute">The trait attribute containing the trait values.</param>
        /// <returns>The trait values.</returns>
        public IEnumerable <KeyValuePair <string, string> > GetTraits(IAttributeInfo traitAttribute)
        {
            IEnumerable <object> ctorArgs = traitAttribute.GetConstructorArguments();

            Debug.Assert(ctorArgs.Count() >= 2);

            string                  issue      = ctorArgs.First().ToString();
            TestPlatforms           platforms  = TestPlatforms.Any;
            TargetFrameworkMonikers frameworks = TargetFrameworkMonikers.Any;
            TestRuntimes            runtimes   = TestRuntimes.Any;

            foreach (object arg in ctorArgs.Skip(1)) // First argument is the issue number.
            {
                if (arg is TestPlatforms)
                {
                    platforms = (TestPlatforms)arg;
                }
                else if (arg is TargetFrameworkMonikers)
                {
                    frameworks = (TargetFrameworkMonikers)arg;
                }
                else if (arg is TestRuntimes)
                {
                    runtimes = (TestRuntimes)arg;
                }
            }

            if (DiscovererHelpers.TestPlatformApplies(platforms) &&
                DiscovererHelpers.TestRuntimeApplies(runtimes) &&
                DiscovererHelpers.TestFrameworkApplies(frameworks))
            {
                return(new[] { new KeyValuePair <string, string>(XunitConstants.Category, XunitConstants.Failing) });
            }

            return(Array.Empty <KeyValuePair <string, string> >());
        }