public void Run(IConeTest test, ITestResult result, ITestExecutionContext context) { var ignore = test.Attributes.GetCustomAttributes(typeof(IPendingAttribute)).Cast<IPendingAttribute>().FirstOrDefault(x => x.NoExecute); if(ignore != null) { result.Pending(ignore.Reason); return; } var wrap = CombineEstablish(new FixtureContext(fixture, test.Attributes)); var next = ExecutionContext .Concat(fixtureContext) .Concat(GetTestContexts(test.Attributes)) .Aggregate((t, r) => t.Run(r), wrap); var testContext = test as ITestExecutionContext; if(testContext != null) next = wrap(next, testContext); wrap(next, context)(test, result); }