public TestBuilder RunSuiteAction(FixtureDiscoveryContext buildContext, GlobalSetupManager globalSetup, Action action, bool isOuterScopeOfSpecification, TestBuilder resultBuilder) { var builder = new NJasmineTestSuiteBuilder(_nativeTestFactory, resultBuilder, buildContext, globalSetup); var exception = buildContext.RunActionWithVisitor(_position.GetFirstChildPosition(), action, builder); if (exception == null) { builder.VisitAccumulatedTests(v => resultBuilder.AddChildTest(v)); } else { var failingSuiteAsTest = new TestBuilder(_nativeTestFactory.ForFailingSuite(_position, exception)); failingSuiteAsTest.FullName = resultBuilder.FullName; failingSuiteAsTest.Shortname = resultBuilder.Shortname; failingSuiteAsTest.MultilineName = resultBuilder.MultilineName; buildContext.NameGenator.ReserveName(failingSuiteAsTest); if (isOuterScopeOfSpecification) { resultBuilder.AddChildTest(failingSuiteAsTest); } else { return failingSuiteAsTest; } } return resultBuilder; }