示例#1
0
        public static void ConvertsITestFailed()
        {
            Exception ex;

            try
            {
                throw new Exception();
            }
            catch (Exception e)
            {
                ex = e;
            }

            TestResult testResult = null;
            var        listener   = Substitute.For <ITestListener>();

            listener.WhenAny(l => l.TestFinished(null))
            .Do <TestResult>(result => testResult = result);
            var visitor = new ResultVisitor(listener, 42);
            var message = Mocks.TestFailed(typeof(string), "Contains", "Display Name", executionTime: 123.45M, ex: ex);

            visitor.OnMessage(message);

            Assert.NotNull(testResult);
            Assert.Same(typeof(string), testResult.FixtureType);
            Assert.Equal("Contains", testResult.Method.Name);
            Assert.Equal("Display Name", testResult.Name);
            Assert.Equal(TestState.Failed, testResult.State);
            Assert.Equal(123.45, testResult.TimeSpan.TotalMilliseconds);
            Assert.Equal(42, testResult.TotalTests);
            Assert.Equal("System.Exception : " + ex.Message, testResult.Message);
            Assert.Equal(ex.StackTrace, testResult.StackTrace);
        }
示例#2
0
        public static void DefaultRunStateIsNoTests()
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener, 42);

            Assert.Equal(TestRunState.NoTests, visitor.TestRunState);
        }
示例#3
0
        public virtual TestRunState Run(IEnumerable<ITestCase> testCases = null, TestRunState initialRunState = TestRunState.NoTests)
        {
            try
            {
                if (testCases != null)
                    testCases = testCases.ToList();

                var visitor = new ResultVisitor(testListener) { TestRunState = initialRunState };
                toDispose.Push(visitor);

                if (testCases == null)
                    xunit.Run(visitor, new XunitDiscoveryOptions(), new XunitExecutionOptions());
                else
                    xunit.Run(testCases, visitor, new XunitExecutionOptions());

                visitor.Finished.WaitOne();

                return visitor.TestRunState;
            }
            catch (Exception ex)
            {
                testListener.WriteLine("Error during test execution:\r\n" + ex, Category.Error);
                return TestRunState.Error;
            }
        }
示例#4
0
        public void ConvertsITestSkipped()
        {
            TestResult testResult = null;
            var        listener   = Substitute.For <ITestListener>();

            listener.WhenAny(l => l.TestFinished(null))
            .Do <TestResult>(result => testResult = result);
            var visitor = new ResultVisitor(listener);
            var message = new TestSkipped
            {
                TestCase        = new TestCase(typeof(string), "Contains"),
                TestDisplayName = "Display Name",
                ExecutionTime   = 123.45M,
                Reason          = "I forgot how to run"
            };

            visitor.OnMessage(message);

            Assert.NotNull(testResult);
            Assert.Same(typeof(string), testResult.FixtureType);
            Assert.Equal("Contains", testResult.Method.Name);
            Assert.Equal("Display Name", testResult.Name);
            Assert.Equal(TestState.Ignored, testResult.State);
            Assert.Equal(123.45, testResult.TimeSpan.TotalMilliseconds);
            Assert.Equal(1, testResult.TotalTests);
            Assert.Equal("I forgot how to run", testResult.Message);
        }
示例#5
0
    public static void SignalsFinishedEventUponReceiptOfITestAssemblyFinished()
    {
        var listener = Substitute.For <ITestListener>();
        var visitor  = new ResultVisitor(listener, 42);
        var message  = Substitute.For <ITestAssemblyFinished>();

        visitor.OnMessage(message);

        Assert.True(visitor.Finished.WaitOne(0));
    }
示例#6
0
    public void SignalsFinishedEventUponReceiptOfITestAssemblyFinished()
    {
        var listener = Substitute.For<ITestListener>();
        var visitor = new ResultVisitor(listener);
        var message = Substitute.For<ITestAssemblyFinished>();

        visitor.OnMessage(message);

        Assert.True(visitor.Finished.WaitOne(0));
    }
示例#7
0
        public void FailureSetsStateToFailed(TestRunState initialState)
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener)
            {
                TestRunState = initialState
            };

            visitor.OnMessage(new TestFailed());

            Assert.Equal(TestRunState.Failure, visitor.TestRunState);
        }
示例#8
0
        public void Success_MovesToSuccess()
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener)
            {
                TestRunState = TestRunState.NoTests
            };

            visitor.OnMessage(new TestPassed());

            Assert.Equal(TestRunState.Success, visitor.TestRunState);
        }
示例#9
0
        public void Success_StaysInCurrentState(TestRunState initialState)
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener)
            {
                TestRunState = initialState
            };

            visitor.OnMessage(new TestPassed());

            Assert.Equal(initialState, visitor.TestRunState);
        }
示例#10
0
        public static void FailureSetsStateToFailed(TestRunState initialState)
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener, 42)
            {
                TestRunState = initialState
            };

            visitor.OnMessage(Mocks.TestFailed(typeof(Object), "GetHashCode"));

            Assert.Equal(TestRunState.Failure, visitor.TestRunState);
        }
示例#11
0
        public static void Skip_MovesToSuccess()
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener, 42)
            {
                TestRunState = TestRunState.NoTests
            };

            visitor.OnMessage(Substitute.For <ITestSkipped>());

            Assert.Equal(TestRunState.Success, visitor.TestRunState);
        }
示例#12
0
        public static void Skip_StaysInCurrentState(TestRunState initialState)
        {
            var listener = Substitute.For <ITestListener>();
            var visitor  = new ResultVisitor(listener, 42)
            {
                TestRunState = initialState
            };

            visitor.OnMessage(Substitute.For <ITestSkipped>());

            Assert.Equal(initialState, visitor.TestRunState);
        }
示例#13
0
        public virtual TestRunState Run(IEnumerable<ITestCase> testCases, TestRunState initialRunState = TestRunState.NoTests)
        {
            try
            {
                var visitor = new ResultVisitor(testListener) { TestRunState = initialRunState };
                frontController.Run(testCases.ToList(), visitor);
                visitor.Finished.WaitOne();

                return visitor.TestRunState;
            }
            catch (Exception ex)
            {
                testListener.WriteLine("Error during test execution:\r\n" + ex, Category.Error);
                return TestRunState.Error;
            }
        }
示例#14
0
        public static void LogsTestFailure(IMessageSinkMessage message, string messageType)
        {
            var listener = Substitute.For <ITestListener>();

            using (var visitor = new ResultVisitor(listener, 42)
            {
                TestRunState = TestRunState.NoTests
            })
            {
                visitor.OnMessage(message);

                Assert.Equal(TestRunState.Failure, visitor.TestRunState);
                var testResult = listener.Captured(x => x.TestFinished(null)).Arg <TestResult>();
                Assert.Equal($"*** {messageType} ***", testResult.Name);
                Assert.Equal(TestState.Failed, testResult.State);
                Assert.Equal(1, testResult.TotalTests);
                Assert.Equal("ExceptionType : This is my message \t\r\n", testResult.Message);
                Assert.Equal("Line 1\r\nLine 2\r\nLine 3", testResult.StackTrace);
            }
        }
示例#15
0
        public static void ConvertsITestPassed()
        {
            TestResult testResult = null;
            var        listener   = Substitute.For <ITestListener>();

            listener.WhenAny(l => l.TestFinished(null))
            .Do <TestResult>(result => testResult = result);
            var visitor = new ResultVisitor(listener, 42);
            var message = Mocks.TestPassed(typeof(string), "Contains", "Display Name", executionTime: 123.45M);

            visitor.OnMessage(message);

            Assert.NotNull(testResult);
            Assert.Same(typeof(string), testResult.FixtureType);
            Assert.Equal("Contains", testResult.Method.Name);
            Assert.Equal("Display Name", testResult.Name);
            Assert.Equal(TestState.Passed, testResult.State);
            Assert.Equal(123.45, testResult.TimeSpan.TotalMilliseconds);
            Assert.Equal(42, testResult.TotalTests);
        }
示例#16
0
        public void ConvertsITestFailed()
        {
            Exception ex;

            try
            {
                throw new Exception();
            }
            catch (Exception e)
            {
                ex = e;
            }

            TestResult testResult = null;
            var        listener   = Substitute.For <ITestListener>();

            listener.WhenAny(l => l.TestFinished(null))
            .Do <TestResult>(result => testResult = result);
            var visitor = new ResultVisitor(listener);
            var message = new TestFailed(ex)
            {
                TestCase        = new TestCase(typeof(string), "Contains"),
                TestDisplayName = "Display Name",
                ExecutionTime   = 123.45M,
            };

            visitor.OnMessage(message);

            Assert.NotNull(testResult);
            Assert.Same(typeof(string), testResult.FixtureType);
            Assert.Equal("Contains", testResult.Method.Name);
            Assert.Equal("Display Name", testResult.Name);
            Assert.Equal(TestState.Failed, testResult.State);
            Assert.Equal(123.45, testResult.TimeSpan.TotalMilliseconds);
            Assert.Equal(1, testResult.TotalTests);
            Assert.Equal(ExceptionUtility.GetMessage(ex), testResult.Message);
            Assert.Equal(ExceptionUtility.GetStackTrace(ex), testResult.StackTrace);
        }
示例#17
0
        public virtual TestRunState Run(IReadOnlyList<ITestCase> testCases = null, TestRunState initialRunState = TestRunState.NoTests)
        {
            try
            {
                if (testCases == null)
                    testCases = Discover();

                var visitor = new ResultVisitor(testListener, testCases.Count) { TestRunState = initialRunState };
                toDispose.Push(visitor);

                var executionOptions = TestFrameworkOptions.ForExecution(configuration);
                xunit.RunTests(testCases, visitor, executionOptions);

                visitor.Finished.WaitOne();

                return visitor.TestRunState;
            }
            catch (Exception ex)
            {
                testListener.WriteLine("Error during test execution:\r\n" + ex, Category.Error);
                return TestRunState.Error;
            }
        }
示例#18
0
            /// <summary>
            /// apply each result row to the visitor
            /// </summary>
            /// <param name="theVisitor">instance of the visitor delegate</param>
            public void for_each_row(ResultVisitor theVisitor)
            {
                this.command_.CommandText = this.sp_name_;
                SqlDataReader reader = null;

                try
                {
                    reader = this.host_.exec_sp_command_for_reader(this.command_);
                    while (reader.Read())
                    {
                        object [] values = new object[reader.FieldCount];
                        reader.GetValues(values);
                        theVisitor.take_row(values);
                    }
                }
                finally
                {
                    if (null != reader)
                    {
                        reader.Close();
                    }
                }
            }
示例#19
0
        public void ConvertsITestFailed()
        {
            Exception ex;

            try
            {
                throw new Exception();
            }
            catch (Exception e)
            {
                ex = e;
            }

            TestResult testResult = null;
            var listener = Substitute.For<ITestListener>();
            listener.WhenAny(l => l.TestFinished(null))
                    .Do<TestResult>(result => testResult = result);
            var visitor = new ResultVisitor(listener);
            var message = new TestFailed(ex)
            {
                TestCase = new TestCase(typeof(string), "Contains"),
                TestDisplayName = "Display Name",
                ExecutionTime = 123.45M,
            };

            visitor.OnMessage(message);

            Assert.NotNull(testResult);
            Assert.Same(typeof(string), testResult.FixtureType);
            Assert.Equal("Contains", testResult.Method.Name);
            Assert.Equal("Display Name", testResult.Name);
            Assert.Equal(TestState.Failed, testResult.State);
            Assert.Equal(123.45, testResult.TimeSpan.TotalMilliseconds);
            Assert.Equal(1, testResult.TotalTests);
            Assert.Equal(ExceptionUtility.GetMessage(ex), testResult.Message);
            Assert.Equal(ExceptionUtility.GetStackTrace(ex), testResult.StackTrace);
        }
示例#20
0
        public void ConvertsITestPassed()
        {
            TestResult testResult = null;
            var listener = Substitute.For<ITestListener>();
            listener.WhenAny(l => l.TestFinished(null))
                    .Do<TestResult>(result => testResult = result);
            var visitor = new ResultVisitor(listener);
            var message = new TestPassed
            {
                TestCase = new TestCase(typeof(string), "Contains"),
                TestDisplayName = "Display Name",
                ExecutionTime = 123.45M
            };

            visitor.OnMessage(message);

            Assert.NotNull(testResult);
            Assert.Same(typeof(string), testResult.FixtureType);
            Assert.Equal("Contains", testResult.Method.Name);
            Assert.Equal("Display Name", testResult.Name);
            Assert.Equal(TestState.Passed, testResult.State);
            Assert.Equal(123.45, testResult.TimeSpan.TotalMilliseconds);
            Assert.Equal(1, testResult.TotalTests);
        }
        /// <summary>
        /// Accept a ResultVisitor
        /// </summary>
        /// <param name="visitor">The visitor to accept</param>
		public override void Accept(ResultVisitor visitor) 
		{
			visitor.Visit(this);
		}
示例#22
0
文件: TestResult.cs 项目: nobled/mono
		/// <summary>
		/// Abstract method that accepts a ResultVisitor
		/// </summary>
		/// <param name="visitor">The visitor</param>
		public abstract void Accept(ResultVisitor visitor);
 /// <summary>
 /// Accept a ResultVisitor
 /// </summary>
 /// <param name="visitor">The visitor to accept</param>
 public override void Accept(ResultVisitor visitor)
 {
     visitor.Visit(this);
 }
示例#24
0
        public void DefaultRunStateIsNoTests()
        {
            var listener = Substitute.For<ITestListener>();
            var visitor = new ResultVisitor(listener);

            Assert.Equal(TestRunState.NoTests, visitor.TestRunState);
        }
示例#25
0
        public void FailureSetsStateToFailed(TestRunState initialState)
        {
            var listener = Substitute.For<ITestListener>();
            var visitor = new ResultVisitor(listener) { TestRunState = initialState };

            visitor.OnMessage(new TestFailed());

            Assert.Equal(TestRunState.Failure, visitor.TestRunState);
        }
示例#26
0
        public void Success_MovesToSuccess()
        {
            var listener = Substitute.For<ITestListener>();
            var visitor = new ResultVisitor(listener) { TestRunState = TestRunState.NoTests };

            visitor.OnMessage(new TestPassed());

            Assert.Equal(TestRunState.Success, visitor.TestRunState);
        }
示例#27
0
        public void Success_StaysInCurrentState(TestRunState initialState)
        {
            var listener = Substitute.For<ITestListener>();
            var visitor = new ResultVisitor(listener) { TestRunState = initialState };

            visitor.OnMessage(new TestPassed());

            Assert.Equal(initialState, visitor.TestRunState);
        }
示例#28
0
 /// <summary>
 /// Abstract method that accepts a ResultVisitor
 /// </summary>
 /// <param name="visitor">The visitor</param>
 public abstract void Accept(ResultVisitor visitor);