public override TestResult Run(EventListener listener)
        {
            using (new TestContext())
            {
                TestCaseResult testResult = MakeTestCaseResult();

                listener.TestStarted(this.TestName);
                long startTime = DateTime.Now.Ticks;

                switch (this.RunState)
                {
                case RunState.Runnable:
                case RunState.Explicit:
                    Run(testResult);
                    break;

                case RunState.Skipped:
                    testResult.Skip(IgnoreReason);
                    break;

                default:
                case RunState.NotRunnable:
                case RunState.Ignored:
                    testResult.Ignore(IgnoreReason);
                    break;
                }

                long   stopTime = DateTime.Now.Ticks;
                double time     = ((double)(stopTime - startTime)) / (double)TimeSpan.TicksPerSecond;
                testResult.Time = time;

                listener.TestFinished(testResult);
                return(testResult);
            }
        }
Exemplo n.º 2
0
        public override TestResult Run(EventListener listener)
        {
            using (new TestContext())
            {
                TestCaseResult testResult = MakeTestCaseResult();

                listener.TestStarted(this.TestName);

                // The babysitter's enter/leave "listeners" specifically exist to track crashes,
                // so unfortunately they can't work through the (asynchronous) listener interface.
                bool willRun = this.RunState == RunState.Runnable || this.RunState == RunState.Explicit;
                if (willRun)
                {
                    BabysitterSupport.RecordEnterTest(this.TestName.FullName);
                }

                long startTime = DateTime.Now.Ticks;

                switch (this.RunState)
                {
                case RunState.Runnable:
                case RunState.Explicit:
                    Run(testResult);
                    break;

                case RunState.Skipped:
                    testResult.Skip(IgnoreReason);
                    break;

                default:
                case RunState.NotRunnable:
                case RunState.Ignored:
                    testResult.Ignore(IgnoreReason);
                    break;
                }

                long stopTime = DateTime.Now.Ticks;

                if (willRun)
                {
                    BabysitterSupport.RecordLeaveTest(this.TestName.FullName);
                }

                double time = ((double)(stopTime - startTime)) / (double)TimeSpan.TicksPerSecond;
                testResult.Time = time;

                listener.TestFinished(testResult);
                return(testResult);
            }
        }