Esempio n. 1
0
        public ITestResult Run(ITestListener listener, ITestFilter filter)
        {
            IFormatter formatter = new BinaryFormatter();

            formatter.Serialize(stream, filter);

            while (true)
            {
                object message = formatter.Deserialize(stream);
                if (message is TestStartedMessage tsmessage)
                {
                    listener.TestStarted(tsmessage.Test);
                }
                else if (message is TestFinishedMessage tfmessage)
                {
                    listener.TestFinished(tfmessage.TestResult);
                }
                else if (message is ExceptionMessage emessage)
                {
                    throw emessage.Exception;
                }
                else if (message is ResultMessage rmessage)
                {
                    return(rmessage.TestResult);
                }
                else
                {
                    throw new Exception($"unknown message {message}");
                }
            }

            adb.WaitForExit();
        }
Esempio n. 2
0
 /// <summary>
 /// Called when a test or suite has just started
 /// </summary>
 /// <param name="test">The test that is starting</param>
 public void TestStarted(ITest test)
 {
     if (_teamCity != null)
     {
         _teamCity.TestStarted(test);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// A test has just started
 /// </summary>
 /// <param name="test">The test</param>
 public void TestStarted(ITest test)
 {
     if (commandLineOptions.LabelTestsInOutput)
     {
         writer.WriteLine("***** {0}", test.Name);
     }
     listener.TestStarted(test);
 }
Esempio n. 4
0
        public void TestStarted(ITest test)
        {
            if (test is TestMethod)
            {
                if (!(test.Method.MethodInfo is null))
                {
                    Writer.Write(test.Method.MethodInfo.ReflectedType.ToString());
                    Writer.Write('.');
                }
                Writer.Write(test.Name);
                Writer.Flush(); // Sometimes the test fails before it completes crashing the runtime, it's good to have the name of the test in the output
            }

            innerListener.TestStarted(test);
        }
Esempio n. 5
0
 private void RunTest(ITest test, ITestListener listener)
 {
     if (test.IsLeafTest())
     {
         listener.TestStarted(test);
     }
     try
     {
         test.Run();
     }
     catch (TestException x)
     {
         var reason = x.GetReason();
         listener.TestFailed(test, reason == null ? x : reason);
     }
     catch (Exception failure)
     {
         listener.TestFailed(test, failure);
     }
 }
Esempio n. 6
0
 private void RunTest(ITest test, ITestListener listener)
 {
     if (test.IsLeafTest())
     {
         listener.TestStarted(test);
     }
     try
     {
         test.Run();
     }
     catch (TestException x)
     {
         Exception reason = x.GetReason();
         listener.TestFailed(test, reason == null ? x : reason);
     }
     catch (Exception failure)
     {
         listener.TestFailed(test, failure);
     }
 }
Esempio n. 7
0
 public virtual void TestStarted(ITest test)
 {
     _listener1.TestStarted(test);
     _listener2.TestStarted(test);
 }
Esempio n. 8
0
        public TestResult Run(ITestListener listener)
        {
            listener.TestStarted(this);

            TestResult result = new TestResult(this);
            Run(result, listener);

            listener.TestFinished(result);

            return result;
        }
Esempio n. 9
0
        ///// <summary>
        ///// Gets a value indicating whether this event is delivered synchronously by the NUnit <see cref="EventPump"/>.
        ///// <para>
        ///// If <c>true</c>, and if <see cref="EventQueue.SetWaitHandleForSynchronizedEvents"/> has been used to
        ///// set a WaitHandle, <see cref="EventQueue.Enqueue"/> blocks its calling thread until the <see cref="EventPump"/>
        ///// thread has delivered the event and sets the WaitHandle.
        ///// </para>
        ///// </summary>
        // Keeping this as a synchronous until we rewrite using multiple autoresetevents
        //public override bool IsSynchronous
        //{
        //    get
        //    {
        //        return true;
        //    }
        //}

        /// <summary>
        /// Calls TestStarted on the specified listener.
        /// </summary>
        /// <param name="listener">The listener.</param>
        public override void Send(ITestListener listener)
        {
            listener.TestStarted(this.test);
        }
Esempio n. 10
0
 /// <summary>
 /// Calls TestStarted on the specified listener.
 /// </summary>
 /// <param name="listener">The listener.</param>
 public override void Send(ITestListener listener)
 {
     listener.TestStarted(_test);
 }
Esempio n. 11
0
        public TestResult Run(ITestListener listener)
        {
            int count = 0, failures = 0, errors = 0;
            listener.TestStarted(this);
            TestResult result = new TestResult(this);

            switch (this.RunState)
            {
                case RunState.NotRunnable:
                    result.Error(this.IgnoreReason);
                    break;

                case RunState.Ignored:
                    result.NotRun(this.IgnoreReason);
                    break;

                case RunState.Runnable:
                    foreach (ITest test in tests)
                    {
                        ++count;
                        TestResult r = test.Run(listener);
                        result.AddResult(r);
                        switch (r.ResultState)
                        {
                            case ResultState.Error:
                                ++errors;
                                break;
                            case ResultState.Failure:
                                ++failures;
                                break;
                            default:
                                break;
                        }
                    }

                    if (count == 0)
                        result.NotRun("Class has no tests");
                    else if (errors > 0 || failures > 0)
                        result.Failure("One or more component tests failed");
                    else
                        result.Success();
                    break;
            }

            listener.TestFinished(result);
            return result;
        }