Ejemplo n.º 1
0
        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);
        }