Ejemplo n.º 1
0
        public Test Decorate(Test test, MemberInfo member)
        {
            var retryAttr = GetRetryAttribute(member, test);

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

            if (test is NUnitTestMethod)
            {
                return(new RetriedTestMethod(
                           (NUnitTestMethod)test,
                           retryAttr.Times,
                           retryAttr.RequiredPassCount));
            }

            if (!(test is ParameterizedMethodSuite))
            {
                return(test);
            }

            var testMethodSuite = (ParameterizedMethodSuite)test;

            System.Collections.IList newTests = new List <Test>();
            foreach (Test childTest in testMethodSuite.Tests)
            {
                if (childTest is NUnitTestMethod)
                {
                    var oldTest = (NUnitTestMethod)childTest;
                    var newTest = new RetriedTestMethod(
                        oldTest,
                        retryAttr.Times,
                        retryAttr.RequiredPassCount);

                    newTests.Add(newTest);
                }
                else
                {
                    newTests.Add(childTest);
                }
            }

            testMethodSuite.Tests.Clear();
            foreach (Test newTest in newTests)
            {
                testMethodSuite.Add(newTest);
            }

            return(testMethodSuite);
        }
Ejemplo n.º 2
0
        public Test Decorate(Test test, MemberInfo member)
        {
            var retryAttr = GetRetryAttribute(member, test);

            if (retryAttr == null) return test;

            if (test is NUnitTestMethod)
            {
                return new RetriedTestMethod(
                    (NUnitTestMethod)test,
                    retryAttr.Times,
                    retryAttr.RequiredPassCount);
            }

            if (!(test is ParameterizedMethodSuite)) return test;

            var testMethodSuite = (ParameterizedMethodSuite)test;

            System.Collections.IList newTests = new List<Test>();
            foreach (Test childTest in testMethodSuite.Tests)
            {
                if (childTest is NUnitTestMethod)
                {
                    var oldTest = (NUnitTestMethod)childTest;
                    var newTest = new RetriedTestMethod(
                        oldTest,
                        retryAttr.Times,
                        retryAttr.RequiredPassCount);

                    newTests.Add(newTest);
                }
                else
                {
                    newTests.Add(childTest);
                }
            }

            testMethodSuite.Tests.Clear();
            foreach (Test newTest in newTests)
            {
                testMethodSuite.Add(newTest);
            }

            return testMethodSuite;
        }
Ejemplo n.º 3
0
        public Test Decorate(Test test, MemberInfo member)
        {
            if (test is NUnitTestMethod)
            {
                var testMethod = (NUnitTestMethod)test;

                var attrs = member.GetCustomAttributes(typeof(RetryAttribute), true);

                if (testMethod.FixtureType != null)
                {
                    var fixtureAttrs =
                        testMethod.FixtureType.GetCustomAttributes(typeof(RetryAttribute), true).ToArray();

                    if (fixtureAttrs.Length > 0)
                    {
                        var retryAttr = (fixtureAttrs[0] as RetryAttribute);

                        if (retryAttr != null)
                        {
                            test = new RetriedTestMethod(
                                testMethod.Method,
                                retryAttr.Times,
                                retryAttr.RequiredPassCount);
                        }
                    }
                }

                if (attrs.Any())
                {
                    var retryAttr = (attrs.First() as RetryAttribute);

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

                    test = new RetriedTestMethod(testMethod.Method, retryAttr.Times, retryAttr.RequiredPassCount);
                }
            }

            return test;
        }