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); }
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; }
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; }