public IEnumerable ExecuteEnumerable(ITestExecutionContext context) { yield return(null); var currentExecutingTestEnumerator = new TestEnumeratorWrapper(testMethod).GetEnumerator(context); if (currentExecutingTestEnumerator != null) { var testEnumeraterYieldInstruction = new TestEnumerator(context, currentExecutingTestEnumerator); yield return(testEnumeraterYieldInstruction); var enumerator = testEnumeraterYieldInstruction.Execute(); var executingEnumerator = ExecuteEnumerableAndRecordExceptions(enumerator, context); while (executingEnumerator.MoveNext()) { yield return(executingEnumerator.Current); } } else { if (context.CurrentResult.ResultState != ResultState.Ignored) { context.CurrentResult.SetResult(ResultState.Success); } } }
public IEnumerable ExecuteEnumerable(ITestExecutionContext context) { yield return(null); IEnumerator currentExecutingTestEnumerator; try { currentExecutingTestEnumerator = new TestEnumeratorWrapper(testMethod).GetEnumerator(context); } catch (Exception ex) { context.CurrentResult.RecordException(ex); yield break; } if (currentExecutingTestEnumerator != null) { var testEnumeraterYieldInstruction = new TestEnumerator(context, currentExecutingTestEnumerator); yield return(testEnumeraterYieldInstruction); var enumerator = testEnumeraterYieldInstruction.Execute(); var executingEnumerator = ExecuteEnumerableAndRecordExceptions(enumerator, new EnumeratorContext(context)); while (AdvanceEnumerator(executingEnumerator)) { yield return(executingEnumerator.Current); } } else { if (context.CurrentResult.ResultState != ResultState.Ignored) { context.CurrentResult.SetResult(ResultState.Success); } } }