コード例 #1
0
        private TestResult SkipTest()
        {
            TestResult testResult = new TestResult(this);

            switch (this.RunState)
            {
            case RunState.Skipped:
            default:
                testResult.Skip(IgnoreReason);
                break;

            case RunState.NotRunnable:
                if (BuilderException != null)
                {
                    testResult.Invalid(BuilderException);
                }
                else
                {
                    testResult.Invalid(IgnoreReason);
                }
                break;

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

            return(testResult);
        }
コード例 #2
0
        public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            using (new TestContext())
            {
                TestResult testResult = new TestResult(this);

                ContextDictionary context = Context;
                context._testResult   = testResult;
                context["TestName"]   = this.TestName.Name;
                context["Properties"] = this.Properties;

                CallContext.SetData("NUnit.Framework.TestContext", context);

                log.Debug("Test Starting: " + this.TestName.FullName);
                listener.TestStarted(this.TestName);
                long startTime = DateTime.Now.Ticks;

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

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

                case RunState.NotRunnable:
                    if (BuilderException != null)
                    {
                        testResult.Invalid(BuilderException);
                    }
                    else
                    {
                        testResult.Invalid(IgnoreReason);
                    }
                    break;

                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);
            }
        }
コード例 #3
0
ファイル: TestSuite.cs プロジェクト: wradecki/ContinuousTests
        protected virtual void DoOneTimeBeforeTestSuiteActions(TestResult suiteResult)
        {
            try
            {
                ExecuteActions(ActionPhase.Before);
                TestExecutionContext.CurrentContext.Update();
            }
            catch (Exception ex)
            {
                if (ex is NUnitException || ex is System.Reflection.TargetInvocationException)
                {
                    ex = ex.InnerException;
                }

                if (ex is InvalidTestFixtureException)
                {
                    suiteResult.Invalid(ex.Message);
                }
                else if (IsIgnoreException(ex))
                {
                    this.RunState = RunState.Ignored;
                    suiteResult.Ignore(ex.Message);
                    suiteResult.StackTrace = ex.StackTrace;
                    this.IgnoreReason      = ex.Message;
                }
                else if (IsAssertException(ex))
                {
                    suiteResult.Failure(ex.Message, ex.StackTrace, FailureSite.SetUp);
                }
                else
                {
                    suiteResult.Error(ex, FailureSite.SetUp);
                }
            }
        }
コード例 #4
0
        public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            using (new global::NUnit.Core.TestContext())
            {
                var testResult = new TestResult(this);
                Log.Debug("Test Starting: " + TestName.FullName);
                listener.TestStarted(TestName);
                var stopwatch = new Stopwatch();
                stopwatch.Start();

                switch (RunState)
                {
                    case RunState.Runnable:
                    case RunState.Explicit:
                        DoTest(_test, testResult);
                        break;
                    case RunState.NotRunnable:
                        testResult.Invalid(IgnoreReason);
                        break;
                    case RunState.Ignored:
                        testResult.Ignore(IgnoreReason);
                        break;
                    default:
                        testResult.Skip(IgnoreReason);
                        break;

                }

                stopwatch.Stop();
                testResult.Time = stopwatch.Elapsed.Seconds;

                listener.TestFinished(testResult);
                return testResult;
            }
        }
コード例 #5
0
ファイル: ClosureTest.cs プロジェクト: i-e-b/FluentBdd
        public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            var result = new TestResult(this);

            lock (testClosure) {
                try {
                    testClosure.TestMethod();
                    TestNonExceptionCondition(result);
                } catch (IgnoreException iex) {
                    result.Ignore(iex.Message);
                } catch (InconclusiveException icex) {
                    result.Invalid(icex.Message);
                } catch (Exception ex) {
                    TestExceptionCondition(result, ex);
                }

                try {
                    testClosure.TearDown();
                } catch (Exception ex) {
                    result.Failure("Exception in tear-down: "+ex.Message, ex.StackTrace);
                }
            }

            listener.TestFinished(result);
            return result;
        }
コード例 #6
0
ファイル: TestSuite.cs プロジェクト: wradecki/ContinuousTests
        protected virtual void DoOneTimeSetUp(TestResult suiteResult)
        {
            if (FixtureType != null)
            {
                try
                {
                    // In case TestFixture was created with fixture object
                    if (Fixture == null && !IsStaticClass(FixtureType))
                    {
                        CreateUserFixture();
                    }

                    if (this.fixtureSetUpMethods != null)
                    {
                        foreach (MethodInfo fixtureSetUp in fixtureSetUpMethods)
                        {
                            Reflect.InvokeMethod(fixtureSetUp, fixtureSetUp.IsStatic ? null : Fixture);
                        }
                    }

                    TestExecutionContext.CurrentContext.Update();
                }
                catch (Exception ex)
                {
                    if (ex is NUnitException || ex is System.Reflection.TargetInvocationException)
                    {
                        ex = ex.InnerException;
                    }

                    if (ex is InvalidTestFixtureException)
                    {
                        suiteResult.Invalid(ex.Message);
                    }
                    else if (IsIgnoreException(ex))
                    {
                        this.RunState = RunState.Ignored;
                        suiteResult.Ignore(ex.Message);
                        suiteResult.StackTrace = ex.StackTrace;
                        this.IgnoreReason      = ex.Message;
                    }
                    else if (IsAssertException(ex))
                    {
                        suiteResult.Failure(ex.Message, ex.StackTrace, FailureSite.SetUp);
                    }
                    else
                    {
                        suiteResult.Error(ex, FailureSite.SetUp);
                    }
                }
            }
        }
コード例 #7
0
		private TestResult SkipTest()
		{
			TestResult testResult = new TestResult(this);
			
            switch (this.RunState)
            {
                case RunState.Skipped:
                default:
                    testResult.Skip(IgnoreReason);
                    break;
                case RunState.NotRunnable:
                    if (BuilderException != null)
                        testResult.Invalid(BuilderException);
                    else
                        testResult.Invalid(IgnoreReason);
                    break;
                case RunState.Ignored:
                    testResult.Ignore(IgnoreReason);
                    break;
            }
			
			return testResult;
		}
コード例 #8
0
ファイル: TestSuite.cs プロジェクト: wradecki/ContinuousTests
 private void MarkAllTestsInvalid(TestResult suiteResult, EventListener listener, ITestFilter filter)
 {
     suiteResult.Invalid(this.IgnoreReason);
     MarkTestsNotRun(this.Tests, ResultState.NotRunnable, this.IgnoreReason, suiteResult, listener, filter);
 }
コード例 #9
0
ファイル: TestSuite.cs プロジェクト: kobida/nunitv2
 private void MarkAllTestsInvalid(TestResult suiteResult, EventListener listener, ITestFilter filter)
 {
     suiteResult.Invalid(this.IgnoreReason);
     MarkTestsNotRun(this.Tests, ResultState.NotRunnable, this.IgnoreReason, suiteResult, listener, filter);
 }
コード例 #10
0
ファイル: TestSuite.cs プロジェクト: kobida/nunitv2
        protected virtual void DoOneTimeBeforeTestSuiteActions(TestResult suiteResult)
        {
            try
            {
                ExecuteActions(ActionPhase.Before);
                TestExecutionContext.CurrentContext.Update();
            }
            catch (Exception ex)
            {
                if (ex is NUnitException || ex is System.Reflection.TargetInvocationException)
                    ex = ex.InnerException;

                if (ex is InvalidTestFixtureException)
                    suiteResult.Invalid(ex.Message);
                else if (IsIgnoreException(ex))
                {
                    this.RunState = RunState.Ignored;
                    suiteResult.Ignore(ex.Message);
                    suiteResult.StackTrace = ex.StackTrace;
                    this.IgnoreReason = ex.Message;
                }
                else if (IsAssertException(ex))
                    suiteResult.Failure(ex.Message, ex.StackTrace, FailureSite.SetUp);
                else
                    suiteResult.Error(ex, FailureSite.SetUp);
            }
        }
コード例 #11
0
ファイル: TestSuite.cs プロジェクト: kobida/nunitv2
        protected virtual void DoOneTimeSetUp(TestResult suiteResult)
        {
            if (FixtureType != null)
            {
                try
                {
					// In case TestFixture was created with fixture object
					if (Fixture == null && !IsStaticClass( FixtureType ) )
						CreateUserFixture();

                    if (this.fixtureSetUpMethods != null)
                        foreach( MethodInfo fixtureSetUp in fixtureSetUpMethods )
                            Reflect.InvokeMethod(fixtureSetUp, fixtureSetUp.IsStatic ? null : Fixture);

                    TestExecutionContext.CurrentContext.Update();
                }
                catch (Exception ex)
                {
                    if (ex is NUnitException || ex is System.Reflection.TargetInvocationException)
                        ex = ex.InnerException;

                    if (ex is InvalidTestFixtureException)
                        suiteResult.Invalid(ex.Message);
                    else if (IsIgnoreException(ex))
                    {
                        this.RunState = RunState.Ignored;
                        suiteResult.Ignore(ex.Message);
                        suiteResult.StackTrace = ex.StackTrace;
                        this.IgnoreReason = ex.Message;
                    }
                    else if (IsAssertException(ex))
                        suiteResult.Failure(ex.Message, ex.StackTrace, FailureSite.SetUp);
                    else
                        suiteResult.Error(ex, FailureSite.SetUp);
                }
            }
        }
コード例 #12
0
ファイル: TestMethod.cs プロジェクト: Phaiax/dotnetautoupdate
        public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            using (new TestContext())
            {
                TestResult testResult = new TestResult(this);

                log.Debug("Test Starting: " + this.TestName.FullName);
                listener.TestStarted(this.TestName);
                long startTime = DateTime.Now.Ticks;

                switch (this.RunState)
                {
                    case RunState.Runnable:
                    case RunState.Explicit:
                        Run(testResult);
                        break;
                    case RunState.Skipped:
                    default:
                        testResult.Skip(IgnoreReason);
                        break;
                    case RunState.NotRunnable:
                        if (BuilderException != null)
                            testResult.Invalid(BuilderException);
                        else
                            testResult.Invalid(IgnoreReason);
                        break;
                    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;
            }
        }
コード例 #13
0
		/// <summary>
		/// Performs a one-time set-up for this test suite.
		/// </summary>
		/// <remarks>
		/// The implementation calls the base method and then calls all methods decorated
		/// with NUnit's Test Fixture Set Up Attribute that accept a single argument parameter.
		/// </remarks>
		/// <param name="suiteResult">The result of the test.</param>
		protected override void DoOneTimeSetUp(TestResult suiteResult)
		{
			base.DoOneTimeSetUp(suiteResult);
			try
			{
				if (Argument != null)
				{
					foreach (MethodInfo setupMethod in Reflect.GetMethodsWithAttribute(FixtureType, NUnitFramework.FixtureSetUpAttribute, true))
					{
						if (setupMethod.GetParameters().Length == 1)
						{
							Reflect.InvokeMethod(setupMethod, this.Fixture, Argument);
						}
					}
				}
			}
			catch (Exception innerException)
			{
				if (innerException is NUnitException || innerException is TargetInvocationException)
				{
					innerException = innerException.InnerException;
				}

				if (innerException is InvalidTestFixtureException)
				{
					suiteResult.Invalid(innerException.Message);
				}
				else
				{
					if (this.IsIgnoreException(innerException))
					{
						base.RunState = RunState.Ignored;
						suiteResult.Ignore(innerException.Message);
						suiteResult.StackTrace = innerException.StackTrace;
						base.IgnoreReason = innerException.Message;
					}
					else
					{
						if (this.IsAssertException(innerException))
						{
							suiteResult.Failure(innerException.Message, innerException.StackTrace, FailureSite.SetUp);
						}
						else
						{
							suiteResult.Error(innerException, FailureSite.SetUp);
						}
					}
				}
			}
		}