/// <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); } }
/// <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> /// 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); }
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); }
/// <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); }
/// <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(); } }
/// <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); }