예제 #1
0
        private TestResult SimulateTest( TestNode test, bool ignore )
        {
            if ( test.RunState != RunState.Runnable )
                ignore = true;

            if ( test.IsSuite )
            {
                FireSuiteStarting( test.TestName );

                TestSuiteResult result = new TestSuiteResult( test, test.TestName.Name );

                foreach( TestNode childTest in test.Tests )
                    result.AddResult( SimulateTest( childTest, ignore ) );

                FireSuiteFinished( result );

                return result;
            }
            else
            {
                FireTestStarting( test.TestName );

                TestCaseResult result = new TestCaseResult( test );

                result.RunState = ignore ? RunState.Ignored : RunState.Executed;

                FireTestFinished( result );

                return result;
            }
        }
예제 #2
0
        private TestSuiteResult MockSuiteResult(string suiteName, bool failure)
        {
            TestSuiteResult result = new TestSuiteResult(suiteName);
            result.Time = time;
            result.RunState = RunState.Executed;

            TestSuiteResult level1SuiteA = new TestSuiteResult("level 1 A");
            result.AddResult(level1SuiteA);
            level1SuiteA.RunState = RunState.Executed;

            TestSuiteResult level1SuiteB = new TestSuiteResult("level 1 B");
            result.AddResult(level1SuiteB);
            level1SuiteB.RunState = RunState.Executed;

            testCase = new TestCaseResult("a test case");
            if(failure) testCase.Failure("argument exception",null);
            else testCase.Success();

            level1SuiteA.AddResult(testCase);

            testCase = new TestCaseResult("a successful test");
            testCase.Success();
            level1SuiteB.AddResult(testCase);

            testCase = new TestCaseResult("a not run test");
            testCase.Ignore("test not run");
            level1SuiteB.AddResult(testCase);

            return result;
        }
예제 #3
0
        public void Visit(TestSuiteResult suiteResult)
        {
            if(!suiteResult.Executed)
                notRunTree.Nodes.Add(MakeNotRunNode(suiteResult));

            foreach (TestResult result in suiteResult.Results)
            {
                result.Accept(this);
            }
        }
        public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            using (new TestContext())
            {
                TestSuiteResult suiteResult = new TestSuiteResult(new TestInfo(this), TestName.Name);

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

                switch (this.RunState)
                {
                    case RunState.Runnable:
                    case RunState.Explicit:
                        suiteResult.RunState = RunState.Executed;
                        DoOneTimeSetUp(suiteResult);
                        if (suiteResult.IsFailure)
                            MarkTestsFailed(Tests, suiteResult, listener, filter);
                        else
                        {
                            try
                            {
                                RunAllTests(suiteResult, listener, filter);
                            }
                            finally
                            {
                                DoOneTimeTearDown(suiteResult);
                            }
                        }
                        break;

                    case RunState.Skipped:
                        suiteResult.Skip(this.IgnoreReason);
                        MarkTestsNotRun(Tests, RunState.Skipped, IgnoreReason, suiteResult, listener, filter);
                        break;

                    default:
                    case RunState.Ignored:
                    case RunState.NotRunnable:
                        suiteResult.Ignore(this.IgnoreReason);
                        MarkTestsNotRun(Tests, RunState.Ignored, IgnoreReason, suiteResult, listener, filter);
                        break;
                }

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

                listener.SuiteFinished(suiteResult);
                return suiteResult;
            }
        }
		public void Visit(TestSuiteResult suiteResult) 
		{
			SetNameandTime(suiteResult.Name, suiteResult.Time);

			
			
			foreach (TestResult result in suiteResult.Results)
			{
				result.Accept(this);
			}
			
			if(!suiteResult.Executed)
				suitesNotRun++;
		}
예제 #6
0
        //private TestCaseResult testCase;
        private TestSuiteResult MockSuiteResult( bool failure )
        {
            TestCaseResult testCaseResult = new TestCaseResult("a test case");
            if ( failure ) testCaseResult.Failure( "case failed", null );

            TestSuiteResult level1SuiteA = new TestSuiteResult("level 1 A");
            level1SuiteA.AddResult(testCaseResult);

            TestSuiteResult level1SuiteB = new TestSuiteResult("level 1 B");
            level1SuiteB.AddResult(new TestCaseResult("a successful test"));

            TestSuiteResult result = new TestSuiteResult("base");
            result.AddResult(level1SuiteA);
            result.AddResult(level1SuiteB);

            return result;
        }
예제 #7
0
        private TestCaseResult findCaseResult(TestSuiteResult suite)
        {
            foreach (TestResult r in suite.Results)
            {
                if (r is TestCaseResult)
                {
                    return (TestCaseResult) r;
                }
                else
                {
                    TestCaseResult result = findCaseResult((TestSuiteResult)r);
                    if (result != null)
                        return result;
                }

            }

            return null;
        }
예제 #8
0
 private void MarkTestFailed(
     Test test, TestSuiteResult suiteResult, EventListener listener, ITestFilter filter)
 {
     if (test is TestSuite)
     {
         listener.SuiteStarted(test.TestName);
         TestSuiteResult result = new TestSuiteResult(new TestInfo(test), test.TestName.FullName);
         string          msg    = string.Format("Parent SetUp failed in {0}", this.FixtureType.Name);
         result.Failure(msg, null, FailureSite.Parent);
         MarkTestsFailed(test.Tests, suiteResult, listener, filter);
         suiteResult.AddResult(result);
         listener.SuiteFinished(result);
     }
     else
     {
         listener.TestStarted(test.TestName);
         TestCaseResult result = new TestCaseResult(new TestInfo(test));
         string         msg    = string.Format("TestFixtureSetUp failed in {0}", this.FixtureType.Name);
         result.Failure(msg, null, FailureSite.Parent);
         suiteResult.AddResult(result);
         listener.TestFinished(result);
     }
 }
예제 #9
0
        public void ClearResults()
        {
            TestCaseResult testCaseResult = new TestCaseResult( testCaseInfo );
            testCaseResult.Success();
            TestSuiteResult testSuiteResult = new TestSuiteResult( fixtureInfo, "MockTestFixture" );
            testSuiteResult.AddResult( testCaseResult );
            testSuiteResult.RunState = RunState.Executed;

            TestSuiteTreeNode node1 = new TestSuiteTreeNode( testSuiteResult );
            TestSuiteTreeNode node2 = new TestSuiteTreeNode( testCaseResult );
            node1.Nodes.Add( node2 );

            Assert.AreEqual( TestSuiteTreeNode.SuccessIndex, node1.ImageIndex );
            Assert.AreEqual( TestSuiteTreeNode.SuccessIndex, node1.SelectedImageIndex );
            Assert.AreEqual( TestSuiteTreeNode.SuccessIndex, node2.ImageIndex );
            Assert.AreEqual( TestSuiteTreeNode.SuccessIndex, node2.SelectedImageIndex );

            node1.ClearResults();

            Assert.AreEqual( TestSuiteTreeNode.InitIndex, node1.ImageIndex );
            Assert.AreEqual( TestSuiteTreeNode.InitIndex, node1.SelectedImageIndex );
            Assert.AreEqual( TestSuiteTreeNode.InitIndex, node2.ImageIndex );
            Assert.AreEqual( TestSuiteTreeNode.InitIndex, node2.SelectedImageIndex );
        }
 public void SuiteFinished(TestSuiteResult result)
 {
 }
예제 #11
0
		public void Visit(TestSuiteResult suiteResult) 
		{
			xmlWriter.WriteStartElement("test-suite");
			xmlWriter.WriteAttributeString("name",suiteResult.Name);
			if(suiteResult.Description != null)
				xmlWriter.WriteAttributeString("description", suiteResult.Description);

			xmlWriter.WriteAttributeString("success", suiteResult.IsSuccess.ToString());
			xmlWriter.WriteAttributeString("time", suiteResult.Time.ToString());
			xmlWriter.WriteAttributeString("asserts", suiteResult.AssertCount.ToString() );
         
			WriteCategories(suiteResult);
			xmlWriter.WriteStartElement("results");                  
			foreach (TestResult result in suiteResult.Results)
			{
				result.Accept(this);
			}
			xmlWriter.WriteEndElement();

			xmlWriter.WriteEndElement();
		}
예제 #12
0
		/// <summary>
		/// A suite finished
		/// </summary>
		/// <param name="result">Result of the suite</param>
		public void SuiteFinished(TestSuiteResult result)
		{
			events.Enqueue( new SuiteFinishedEvent( result ) );
		}
예제 #13
0
파일: TestSuite.cs 프로젝트: fotisp/conqat
 private void MarkTestsFailed(
     IList tests, TestSuiteResult suiteResult, EventListener listener, ITestFilter filter)
 {
     foreach (Test test in ArrayList.Synchronized(tests))
         if (filter.Pass(test))
             MarkTestFailed(test, suiteResult, listener, filter);
 }
예제 #14
0
파일: TestSuite.cs 프로젝트: fotisp/conqat
        private void RunAllTests(
            TestSuiteResult suiteResult, EventListener listener, ITestFilter filter)
        {
            foreach (Test test in ArrayList.Synchronized(Tests))
            {
                if (filter.Pass(test))
                {
                    RunState saveRunState = test.RunState;

                    if (test.RunState == RunState.Runnable && this.RunState != RunState.Runnable && this.RunState != RunState.Explicit )
                    {
                        test.RunState = this.RunState;
                        test.IgnoreReason = this.IgnoreReason;
                    }

                    TestResult result = test.Run(listener, filter);

                    suiteResult.AddResult(result);

                    if (saveRunState != test.RunState)
                    {
                        test.RunState = saveRunState;
                        test.IgnoreReason = null;
                    }
                }
            }
        }
예제 #15
0
 /// <summary>
 /// A suite finished
 /// </summary>
 /// <param name="result">Result of the suite</param>
 public void SuiteFinished(TestSuiteResult result)
 {
     events.Enqueue(new SuiteFinishedEvent(result));
 }
예제 #16
0
파일: TestSuite.cs 프로젝트: fotisp/conqat
 private void MarkTestFailed(
     Test test, TestSuiteResult suiteResult, EventListener listener, ITestFilter filter)
 {
     if (test is TestSuite)
     {
         listener.SuiteStarted(test.TestName);
         TestSuiteResult result = new TestSuiteResult( new TestInfo(test), test.TestName.FullName);
         string msg = string.Format( "Parent SetUp failed in {0}", this.FixtureType.Name );
         result.Failure(msg, null, FailureSite.Parent);
         MarkTestsFailed(test.Tests, suiteResult, listener, filter);
         suiteResult.AddResult(result);
         listener.SuiteFinished(result);
     }
     else
     {
         listener.TestStarted(test.TestName);
         TestCaseResult result = new TestCaseResult( new TestInfo(test) );
         string msg = string.Format( "TestFixtureSetUp failed in {0}", this.FixtureType.Name );
         result.Failure(msg, null, FailureSite.Parent);
         suiteResult.AddResult(result);
         listener.TestFinished(result);
     }
 }
예제 #17
0
        public virtual TestResult EndRun()
        {
            TestSuiteResult suiteResult = new TestSuiteResult( aggregateTest, Test.TestName.FullName );
            foreach( TestRunner runner in runners )
                suiteResult.Results.Add( runner.EndRun() );

            return suiteResult;
        }
예제 #18
0
			public void SuiteFinished(TestSuiteResult result) {
				TestSuite suite = (TestSuite)result.Test;

				if (suite.ShouldRun && ! ((suite.Tests.Count > 0) && ((Test)(suite.Tests [0])).IsSuite))
					Console.WriteLine ();
			}
예제 #19
0
 void NUnit.Core.EventListener.SuiteFinished(TestSuiteResult result)
 {
     listener.SuiteFinished(result);
     events.FireSuiteFinished(result);
 }
예제 #20
0
			public void SuiteFinished(TestSuiteResult suiteResult) 
			{
				if ( debugger && --level == 0) 
				{
					Trace.WriteLine( "############################################################################" );

					if (messages.Count == 0) 
					{
						Trace.WriteLine( "##############                 S U C C E S S               #################" );
					}
					else 
					{
						Trace.WriteLine( "##############                F A I L U R E S              #################" );
						
						foreach ( string s in messages ) 
						{
							Trace.WriteLine(s);
						}
					}

					Trace.WriteLine( "############################################################################" );
					Trace.WriteLine( "Executed tests : " + testRunCount );
					Trace.WriteLine( "Ignored tests  : " + testIgnoreCount );
					Trace.WriteLine( "Failed tests   : " + failureCount );
					Trace.WriteLine( "Total time     : " + suiteResult.Time + " seconds" );
					Trace.WriteLine( "############################################################################");
				}
			}
예제 #21
0
 public SuiteFinishedEvent(TestSuiteResult result)
 {
     this.result = result;
 }
		public void Visit(TestSuiteResult suiteResult) 
		{
			xmlWriter.WriteStartElement("test-suite");
			xmlWriter.WriteAttributeString("name",suiteResult.Name);
			if(suiteResult.Description != null)
				xmlWriter.WriteAttributeString("description", suiteResult.Description);

			xmlWriter.WriteAttributeString("success", suiteResult.IsSuccess.ToString());
			xmlWriter.WriteAttributeString("time", suiteResult.Time.ToString("#####0.000", NumberFormatInfo.InvariantInfo));
			xmlWriter.WriteAttributeString("asserts", suiteResult.AssertCount.ToString() );
         
			WriteCategories(suiteResult);
			WriteProperties(suiteResult);

			if ( suiteResult.IsFailure && suiteResult.FailureSite == FailureSite.SetUp )
			{
				xmlWriter.WriteStartElement("failure");

				xmlWriter.WriteStartElement("message");
				xmlWriter.WriteCData( EncodeCData( suiteResult.Message ) );
				xmlWriter.WriteEndElement();

				xmlWriter.WriteStartElement("stack-trace");
				if(suiteResult.StackTrace != null)
					xmlWriter.WriteCData( EncodeCData( StackTraceFilter.Filter( suiteResult.StackTrace ) ) );
				xmlWriter.WriteEndElement();

				xmlWriter.WriteEndElement();
			}

			xmlWriter.WriteStartElement("results");                  
			foreach (TestResult result in suiteResult.Results)
			{
				result.Accept(this);
			}
			xmlWriter.WriteEndElement();

			xmlWriter.WriteEndElement();
		}
예제 #23
0
파일: TestLoader.cs 프로젝트: nobled/mono
		/// <summary>
		/// Trigger event when each suite finishes
		/// </summary>
		/// <param name="result">Result of the suite that finished</param>
		void EventListener.SuiteFinished(TestSuiteResult result)
		{
			events.FireSuiteFinished( result );
		}
예제 #24
0
        public override TestResult Run(EventListener listener, ITestFilter filter)
        {
            TestSuiteResult suite_result = new TestSuiteResult (new TestInfo (this), TestName.FullName);

            DebuggerTestHost host = DebuggerTestHost.Create ();
            if (host == null) {
                TestCaseResult error = new TestCaseResult (new TestInfo (this));
                string msg = String.Format ("Failed to create DebuggerTestHost in {0}", FixtureType.Name);
                error.Failure (msg, null, FailureSite.Parent);
                suite_result.AddResult (error);
                return suite_result;
            }

            int timeout;
            if (Attribute.Timeout != 0)
                timeout = Attribute.Timeout;
            else
                timeout = DebuggerTestAddIn.DefaultTimeout;

            int repeat = 1;
            if (Attribute.Repeat != 0)
                repeat = Attribute.Repeat;

            try {
                for (int i = 0; i < repeat; i++) {
                    if (!host.Run (new TestInfo (this), suite_result, Type.AssemblyQualifiedName, listener, filter, timeout))
                        break;
                }

                return suite_result;
            } finally {
                host.Dispose ();
            }
        }
예제 #25
0
 public void SuiteFinished(TestSuiteResult result)
 {
     this.listener.SuiteFinished( result );
 }
예제 #26
0
 void EventListener.SuiteFinished(TestSuiteResult nunitResult)
예제 #27
0
		public SuiteFinishedEvent( TestSuiteResult result )
		{
			this.result = result;
		}
예제 #28
0
		public void SuiteFinished(TestSuiteResult result){}
예제 #29
0
		public void SuiteFinished (TestSuiteResult result)
		{
			testSuites.Pop ();
			wrapped.SuiteFinished (GetTestName (result.Test), GetLocalTestResult (result));
		}
예제 #30
0
파일: TestSuite.cs 프로젝트: fotisp/conqat
 private void MarkTestNotRun(
     Test test, RunState runState, string ignoreReason, TestSuiteResult suiteResult, EventListener listener, ITestFilter filter)
 {
     if (test is TestSuite)
     {
         listener.SuiteStarted(test.TestName);
         TestSuiteResult result = new TestSuiteResult( new TestInfo(test), test.TestName.FullName);
         result.NotRun( runState, ignoreReason, null );
         MarkTestsNotRun(test.Tests, runState, ignoreReason, suiteResult, listener, filter);
         suiteResult.AddResult(result);
         listener.SuiteFinished(result);
     }
     else
     {
         listener.TestStarted(test.TestName);
         TestCaseResult result = new TestCaseResult( new TestInfo(test) );
         result.NotRun( runState, ignoreReason, null );
         suiteResult.AddResult(result);
         listener.TestFinished(result);
     }
 }
예제 #31
0
		void CountResults (TestSuiteResult ts, ref int s, ref int f, ref int i)
		{
			if (ts.Results == null)
				return;

			foreach (TestResult t in ts.Results) {
				if (t is TestCaseResult) {
					if (t.IsFailure)
						f++;
					else if (!t.Executed)
						i++;
					else
						s++;
				} else if (t is TestSuiteResult) {
					CountResults ((TestSuiteResult) t, ref s, ref f, ref i);
				}
			}
		}
예제 #32
0
파일: TestSuite.cs 프로젝트: fotisp/conqat
 private void MarkTestsNotRun(
     IList tests, RunState runState, string ignoreReason, TestSuiteResult suiteResult, EventListener listener, ITestFilter filter)
 {
     foreach (Test test in ArrayList.Synchronized(tests))
     {
         if (filter.Pass(test))
             MarkTestNotRun(test, runState, ignoreReason, suiteResult, listener, filter);
     }
 }
예제 #33
0
        public bool Run(TestInfo test, TestSuiteResult suite_result, string test_name, EventListener listener, ITestFilter filter, int timeout)
        {
            listener = new ProxyListener (listener);

            TestRunnerDelegate runner = new TestRunnerDelegate (delegate {
                return server.Run (test_name, listener, filter);
            });

            IAsyncResult ar = runner.BeginInvoke (test_name, null, filter, null, null);

            if (!ar.AsyncWaitHandle.WaitOne (timeout) || !ar.IsCompleted) {
                TestCaseResult error = new TestCaseResult (test);
                string msg = String.Format ("Timeout after {0} ms", timeout);
                error.Failure (msg, null, FailureSite.Parent);
                suite_result.AddResult (error);
                return false;
            }

            try {
                TestResult result = runner.EndInvoke (ar);
                if (result != null) {
                    suite_result.AddResult (result);
                    return true;
                }

                TestCaseResult error = new TestCaseResult (test);
                error.Failure ("Unknown error", null, FailureSite.Parent);
                suite_result.AddResult (error);
                return false;
            } catch (Exception ex) {
                TestCaseResult error = new TestCaseResult (test);
                string msg = String.Format ("Unknown exception: {0}", ex);
                error.Failure (msg, null, FailureSite.Parent);
                suite_result.AddResult (error);
                return false;
            }
        }
예제 #34
0
        public virtual TestResult Run(EventListener listener, ITestFilter filter )
        {
            // Save active listener for derived classes
            this.listener = listener;

            ITest[] tests = new ITest[runners.Length];
            for( int index = 0; index < runners.Length; index++ )
                tests[index] = runners[index].Test;

            this.listener.RunStarted( this.Test.TestName.Name, this.CountTestCases( filter ) );

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

            TestSuiteResult result = new TestSuiteResult( new TestInfo( testName, tests ), projectName );
            result.RunState = RunState.Executed;
            foreach( TestRunner runner in runners )
                result.Results.Add( runner.Run( this, filter ) );

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

            this.listener.SuiteFinished( result );

            this.listener.RunFinished( result );

            this.testResult = result;

            return result;
        }
예제 #35
0
		void NUnit.Core.EventListener.SuiteFinished(TestSuiteResult result)
		{
			listener.SuiteFinished( result );
			events.FireSuiteFinished( result );
		}