예제 #1
0
        /// <summary>
        /// Process an event with granular properties.
        /// </summary>
        /// <param name="l">The log message object.</param>
        private void ProcessGranularEvent(LogMessage l)
        {
            TestGranularity granularity = (TestGranularity)l[LogDecorator.TestGranularity];
            HtmlDiv         div         = new HtmlDiv();

            div.InnerHtml   = l.Message;
            div.Padding.All = 2;

            switch (granularity)
            {
            case TestGranularity.Harness:
                div.BackgroundColor = Color.DarkGray;
                div.ForegroundColor = Color.VeryLightGray;
                break;

            case TestGranularity.TestScenario:
            case TestGranularity.Test:
                break;

            case TestGranularity.TestGroup:
                div.Font.Bold = true;
                break;

            default:
                div = null;
                AppendFixedText(l.ToString());
                break;
            }
            if (div != null)
            {
                _myLog.Controls.Add(div);
            }
        }
예제 #2
0
 /// <summary>
 /// Initializes dispatcher-stack attaching method container work item.
 /// </summary>
 /// <param name="testHarness">Test harness.</param>
 /// <param name="instance">Test instance.</param>
 /// <param name="method">Method reflection object.</param>
 /// <param name="testMethod">Test method metadata.</param>
 /// <param name="granularity">Granularity of test.</param>
 public UnitTestMethodContainer(ITestHarness testHarness, object instance, MethodInfo method, ITestMethod testMethod, TestGranularity granularity)
     : base(instance, method, testMethod)
 {
     _granularity = granularity;
     _harness     = testHarness as UnitTestHarness;
     _testMethod  = testMethod;
 }
 /// <summary>
 /// Initializes dispatcher-stack attaching method container work item.
 /// </summary>
 /// <param name="testHarness">Test harness.</param>
 /// <param name="instance">Test instance.</param>
 /// <param name="method">Method reflection object.</param>
 /// <param name="testMethod">Test method metadata.</param>
 /// <param name="granularity">Granularity of test.</param>
 public UnitTestMethodContainer(UnitTestHarness testHarness, object instance, MethodInfo method, ITestMethod testMethod, TestGranularity granularity)
     : base(instance, method, testMethod)
 {
     _granularity = granularity;
     _harness = testHarness as UnitTestHarness;
     _testMethod = testMethod;
 }
        /// <summary>
        /// Records a log message that indicates a named, granular test stage
        /// has happened.
        /// </summary>
        /// <param name="message">Any message for the log.</param>
        /// <param name="name">A name for the object or event.</param>
        /// <param name="granularity">The test granularity value.</param>
        /// <param name="stage">The test stage value.</param>
        public void GranularTestStage(string message, string name, TestGranularity granularity, TestStage stage)
        {
            LogMessage m = Create(LogMessageType.TestExecution, message);

            DecorateNameProperty(m, name);
            DecorateTestGranularity(m, granularity);
            DecorateTestStage(m, stage);
            Enqueue(m);
        }
 /// <summary>
 /// Enqueues a Ignore message.
 /// </summary>
 /// <param name="granularity">The granularity of the ignore operation.</param>
 /// <param name="name">The name of the test skipped.</param>
 public void Ignore(TestGranularity granularity, string name)
 {
     string message = String.Format(System.Globalization.CultureInfo.CurrentCulture, Properties.UnitTestMessage.LogIgnore, name);
     LogMessage m = Create(LogMessageType.TestExecution, message);
     MarkUnitTestMessage(m);
     DecorateNameProperty(m, name);
     DecorateTestGranularity(m, granularity);
     m[UnitTestLogDecorator.IgnoreMessage] = true;
     Enqueue(m);
 }
        /// <summary>
        /// Enqueues a Ignore message.
        /// </summary>
        /// <param name="granularity">The granularity of the ignore operation.</param>
        /// <param name="name">The name of the test skipped.</param>
        public void Ignore(TestGranularity granularity, string name)
        {
            string     message = String.Format(System.Globalization.CultureInfo.CurrentCulture, Properties.UnitTestMessage.LogIgnore, name);
            LogMessage m       = Create(LogMessageType.TestExecution, message);

            MarkUnitTestMessage(m);
            DecorateNameProperty(m, name);
            DecorateTestGranularity(m, granularity);
            m[UnitTestLogDecorator.IgnoreMessage] = true;
            Enqueue(m);
        }
예제 #7
0
        /// <summary>
        /// Conditional check, if the message is of a granular nature, a test
        /// group, and in the finishing stage.
        /// </summary>
        /// <param name="message">The log message.</param>
        /// <returns>Returns true when the conditions are met.</returns>
        private bool MarksTestGroupCompletion(LogMessage message)
        {
            if (message.HasDecorators(LogDecorator.TestGranularity, LogDecorator.TestStage))
            {
                TestGranularity granularity = (TestGranularity)message[LogDecorator.TestGranularity];
                TestStage       stage       = (TestStage)message[LogDecorator.TestStage];

                bool ok = granularity == TestGranularity.TestGroup || granularity == TestGranularity.Harness;
                return(ok && stage == TestStage.Finishing);
            }
            return(false);
        }
        /// <summary>
        /// Log a test class's stage.
        /// </summary>
        /// <param name="test">The test class metadata object.</param>
        /// <param name="stage">The test stage.</param>
        public void TestClassStage(ITestClass test, TestStage stage)
        {
            TestGranularity granularity = TestGranularity.Test;
            LogMessage      m           = Create(LogMessageType.TestExecution, test.Name);

            MarkUnitTestMessage(m);
            DecorateNameProperty(m, test.Name);
            DecorateTestGranularity(m, granularity);
            m[UnitTestLogDecorator.TestClassMetadata] = test;
            DecorateTestStage(m, stage);
            Enqueue(m);
        }
        /// <summary>
        /// Log a test method's stage.
        /// </summary>
        /// <param name="method">The test method metadata object.</param>
        /// <param name="stage">The test stage.</param>
        public void TestMethodStage(ITestMethod method, TestStage stage)
        {
            TestGranularity granularity = TestGranularity.TestScenario;
            LogMessage      m           = Create(LogMessageType.TestExecution, method.Name);

            MarkUnitTestMessage(m);
            DecorateNameProperty(m, method.Name);
            DecorateTestGranularity(m, granularity);
            m[UnitTestLogDecorator.TestMethodMetadata] = method;
            DecorateTestStage(m, stage);
            Enqueue(m);
        }
예제 #10
0
        public UtMethodDispatcher(
            
            TestHarness.ITestHarness testHarness,
            object instance, 
            MethodInfo method, 
            TestGranularity granularity
            )

            : base(instance, method)
        {
            _granularity = granularity;
            _harness = testHarness as UnitTestHarness;
        }
예제 #11
0
        public void GranularAssemblyTestStage(IAssembly assembly, TestGranularity granularity, TestStage stage)
        {
            string message = granularity.ToString() + assembly.Name + " " + stage.ToString().ToLower(System.Globalization.CultureInfo.InvariantCulture);
            string name = assembly.Name;

            LogMessage m = Create(LogMessageType.TestExecution, message);
            MarkUnitTestMessage(m);
            DecorateNameProperty(m, name);
            DecorateTestGranularity(m, granularity);
            m[UnitTestLogDecorator.TestAssemblyMetadata] = assembly;
            DecorateTestStage(m, stage);
            Enqueue(m);
        }
예제 #12
0
        public UtMethodDispatcher(

            TestHarness.ITestHarness testHarness,
            object instance,
            MethodInfo method,
            TestGranularity granularity
            )

            : base(instance, method)
        {
            _granularity = granularity;
            _harness     = testHarness as UnitTestHarness;
        }
        public void GranularAssemblyTestStage(IAssembly assembly, TestGranularity granularity, TestStage stage)
        {
            string message = granularity.ToString() + assembly.Name + " " + stage.ToString().ToLower(System.Globalization.CultureInfo.InvariantCulture);
            string name    = assembly.Name;

            LogMessage m = Create(LogMessageType.TestExecution, message);

            MarkUnitTestMessage(m);
            DecorateNameProperty(m, name);
            DecorateTestGranularity(m, granularity);
            m[UnitTestLogDecorator.TestAssemblyMetadata] = assembly;
            DecorateTestStage(m, stage);
            Enqueue(m);
        }
예제 #14
0
        /// <summary>
        /// Process [Ignore].
        /// </summary>
        /// <param name="l">The Ignore message.</param>
        private void ProcessIgnoreMessage(LogMessage l)
        {
            IncrementScenarioCounter();

            string          name  = (string)l[LogDecorator.NameProperty];
            TestGranularity gran  = (TestGranularity)l[LogDecorator.TestGranularity];
            string          extra = gran == TestGranularity.Test ? " (test class)" : String.Empty;

            HtmlContainerControl ignore = CreateText();

            ignore.InnerHtml       = name + extra;
            ignore.ForegroundColor = Color.LightGray;
            ignore.Font.Strikeout  = true;
            LogContainer.Controls.Add(ignore);
        }
예제 #15
0
        /// <summary>
        /// Process the end message.
        /// </summary>
        /// <param name="logMessage">The log message object.</param>
        private void ProcessEndMessage(LogMessage logMessage)
        {
            //// TestStage stage = (TestStage)logMessage[LogDecorator.TestStage];
            if (!logMessage.HasDecorator(LogDecorator.TestGranularity))
            {
                return;
            }

            TestGranularity gran = (TestGranularity)logMessage[LogDecorator.TestGranularity];

            if (gran == TestGranularity.TestGroup)
            {
                CompleteTestGroup();
            }
        }
예제 #16
0
 /// <summary>
 /// Records a log message that indicates a named, granular test stage 
 /// has happened.
 /// </summary>
 /// <param name="message">Any message for the log.</param>
 /// <param name="name">A name for the object or event.</param>
 /// <param name="granularity">The test granularity value.</param>
 /// <param name="stage">The test stage value.</param>
 public void GranularTestStage(string message, string name, TestGranularity granularity, TestStage stage)
 {
   LogMessage m = Create(LogMessageType.TestExecution, message);
   DecorateNameProperty(m, name);
   DecorateTestGranularity(m, granularity);
   DecorateTestStage(m, stage);
   Enqueue(m);
 }
예제 #17
0
 /// <summary>
 /// Decorate the log message object with a test granularity object.
 /// </summary>
 /// <param name="message">The log message object.</param>
 /// <param name="granularity">Test granularity object.</param>
 protected static void DecorateTestGranularity(LogMessage message, TestGranularity granularity)
 {
   Decorate(message, LogDecorator.TestGranularity, granularity);
 }
 /// <summary>
 /// Decorate the log message object with a test granularity object.
 /// </summary>
 /// <param name="message">The log message object.</param>
 /// <param name="granularity">Test granularity object.</param>
 protected static void DecorateTestGranularity(LogMessage message, TestGranularity granularity)
 {
     Decorate(message, LogDecorator.TestGranularity, granularity);
 }