OpenQA.Selenium.IgnoredBrowserTestDecorator.Decorate C# (CSharp) Méthode

Decorate() public méthode

public Decorate ( NUnit.Core.Test test, MemberInfo member ) : NUnit.Core.Test
test NUnit.Core.Test
member System.Reflection.MemberInfo
Résultat NUnit.Core.Test
        public Test Decorate(Test test, MemberInfo member)
        {
            if ( member == null )
                return test;

            TestCase testCase = test as TestCase;
            if ( testCase == null )
                return test;

            System.Attribute[] ignoreAttr =
                Reflect.GetAttributes( member, IgnoreBrowserAttributeTypeFullName, true );

            if ( ignoreAttr == null )
                return test;

            // A test case might be ignored in more than one browser
            foreach (System.Attribute attr in ignoreAttr)
            {
                object propVal = Reflect.GetPropertyValue(attr, "Value", BindingFlags.Public | BindingFlags.Instance);
                object reasonValue = Reflect.GetPropertyValue(attr, "Reason", BindingFlags.Public | BindingFlags.Instance);

                if (propVal == null)
                {
                    return test;
                }

                string ignoreReason = "Ignoring browser " + EnvironmentManager.Instance.Browser.ToString() + ".";
                if (reasonValue != null)
                {
                    ignoreReason = ignoreReason + " " + reasonValue.ToString();
                }

                Browser browser = (Browser)propVal;

                if (browser.Equals(EnvironmentManager.Instance.Browser) || browser.Equals(Browser.All) || IsRemoteInstanceOfBrowser(browser))
                {
                    testCase.RunState = RunState.Ignored;
                    testCase.IgnoreReason = ignoreReason;

                    return testCase;
                }
            }

            return test;
        }