void EventListener.SuiteFinished(NUnit.Core.TestResult nunitResult)
#else
#error "Unrecognized NUnit framework version."
#endif
            {
                HandleTestOrSuiteFinished(nunitResult);
            }
            private static TestOutcome CreateOutcomeFromResult(NUnit.Core.TestResult nunitResult)
            {
#if NUNIT248
                switch (nunitResult.RunState)
                {
                case RunState.Executed:
                    switch (nunitResult.ResultState)
                    {
                    case ResultState.Success:
                        return(TestOutcome.Passed);

                    case ResultState.Failure:
                        return(TestOutcome.Failed);

                    default:
                    case ResultState.Error:
                        return(TestOutcome.Error);
                    }

                case RunState.Ignored:
                    return(TestOutcome.Ignored);

                default:
                case RunState.NotRunnable:
                case RunState.Runnable:
                case RunState.Skipped:
                case RunState.Explicit:
                    return(TestOutcome.Skipped);
                }
#elif (NUNIT253 || NUNIT254TO10 || NUNITLATEST)
                switch (nunitResult.ResultState)
                {
                case ResultState.Success:
                    return(TestOutcome.Passed);

                case ResultState.Failure:
                    return(TestOutcome.Failed);

                case ResultState.Ignored:
                    return(TestOutcome.Ignored);

                case ResultState.Inconclusive:
                    return(TestOutcome.Inconclusive);

                case ResultState.NotRunnable:
                case ResultState.Skipped:
                    return(TestOutcome.Skipped);

                default:
                case ResultState.Error:
                    return(TestOutcome.Error);
                }
#else
#error "Unrecognized NUnit framework version."
#endif
            }
            private void HandleTestOrSuiteFinished(NUnit.Core.TestResult nunitResult)
            {
                if (testContextStack.Count == 0)
                {
                    return;
                }

                ITestContext testContext = testContextStack.Peek();
                NUnitTest    test        = (NUnitTest)testContext.TestStep.Test;

                if (test.Test.TestName != nunitResult.Test.TestName)
                {
                    return;
                }

                testContextStack.Pop();

                progressMonitor.Worked(1);

                string logStreamName = nunitResult.ResultState == ResultState.Success ? MarkupStreamNames.Warnings : MarkupStreamNames.Failures;

                MarkupDocumentWriter logWriter = testContext.LogWriter;

                if (nunitResult.Message != null)
                {
                    using (logWriter[logStreamName].BeginSection(Resources.NUnitTestController_ResultMessageSectionName))
                        logWriter[logStreamName].Write(nunitResult.Message);
                }
                if (nunitResult.StackTrace != null)
                {
                    using (logWriter[logStreamName].BeginSection(Resources.NUnitTestController_ResultStackTraceSectionName))
                        using (logWriter[logStreamName].BeginMarker(Marker.StackTrace))
                            logWriter[logStreamName].Write(nunitResult.StackTrace);
                }

                testContext.AddAssertCount(nunitResult.AssertCount);
                TestResult result = testContext.FinishStep(CreateOutcomeFromResult(nunitResult), null);

                if (testContextStack.Count == 0)
                {
                    topResult = result;
                }
            }
 void EventListener.RunFinished(NUnit.Core.TestResult result)
 {
 }