public static void UpdateWith(CacheMessages message) { foreach (var item in message.TestsToRemove) { var str = ConvertFromRunner(item); Logger.Write("removing test. " + str); _status.Remove(str); EntryCache.InvalidateNoUpdate(str); } foreach (var item in message.FailedToAdd) { var str = ConvertFromRunner(item); Logger.Write("Adding failed test. " + str); _status[str] = new TestStatusNode { Name = item.Test.Name, status = TestStatus.Fail, text = item.Test.Message }; EntryCache.InvalidateNoUpdate(str); } foreach (var item in message.IgnoredToAdd) { var str = ConvertFromRunner(item); Logger.Write("Adding ignored test. " + str); _status[str] = new TestStatusNode { Name = item.Test.Name, status = TestStatus.Ignored, text = item.Test.Message }; EntryCache.InvalidateNoUpdate(str); } }
private void removeItems(CacheMessages cache) { var toRemove = new List <ListViewItem>(); foreach (ListViewItem listItem in listViewFeedback.Items) { if (listItem.Tag.GetType() == typeof(CacheBuildMessage)) { var item = (CacheBuildMessage)listItem.Tag; if (cache.ErrorsToRemove.Count(x => x.Equals(item)) > 0 || cache.WarningsToRemove.Count(x => x.Equals(item)) > 0) { toRemove.Add(listItem); } } if (listItem.Tag.GetType() == typeof(CacheTestMessage)) { var item = (CacheTestMessage)listItem.Tag; if (existsIn(cache.TestsToRemove, item)) { toRemove.Add(listItem); } } } toRemove.ForEach(x => listViewFeedback.Items.Remove(x)); }
private void handle(CacheMessages cacheMessages) { _syncContext.Post(x => { lock (_messagLock) { Handle((CacheMessages)x); label1.Refresh(); } }, cacheMessages); }
public void normal_method_resolves_ignored_when_present() { var msg = new CacheMessages(); msg.AddIgnored(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Ignored, "Foo.Bar.Baz", "ignore message"))); CurrentTestStatuses.UpdateWith(msg); var status = CurrentTestStatuses.GetStatusOf("System.Void Foo.Bar::Baz()"); Assert.IsNotNull(status); Assert.AreEqual("ignore message", status.text); Assert.AreEqual(TestStatus.Ignored, status.status); Assert.AreEqual("Foo.Bar.Baz", status.Name); CurrentTestStatuses.Clear(); }
public void simpletesting_resolves_failing_when_present() { var msg = new CacheMessages(); msg.AddFailed(new CacheTestMessage("foo.dll", new TestResult(TestRunner.SimpleTesting, TestRunStatus.Failed, "Foo.Bar.Baz", "fail message"))); CurrentTestStatuses.UpdateWith(msg); var status = CurrentTestStatuses.GetStatusOf("Simple.Testing.ClientFramework.Specification Foo.Bar::Baz()"); Assert.IsNotNull(status); Assert.AreEqual("fail message", status.text); Assert.AreEqual(TestStatus.Fail, status.status); Assert.AreEqual("Foo.Bar.Baz", status.Name); CurrentTestStatuses.Clear(); }
public void mspec_resolves_failing_when_present() { var msg = new CacheMessages(); msg.AddFailed(new CacheTestMessage("foo.dll", new TestResult(TestRunner.MSpec, TestRunStatus.Failed, "Foo.Bar.Baz", "fail message"))); CurrentTestStatuses.UpdateWith(msg); var status = CurrentTestStatuses.GetStatusOf("Machine.Specifications.It Foo.Bar.Baz::LOLS"); Assert.IsNotNull(status); Assert.AreEqual("fail message", status.text); Assert.AreEqual(TestStatus.Fail, status.status); Assert.AreEqual("Foo.Bar.Baz", status.Name); CurrentTestStatuses.Clear(); }
public void method_with_parens_resolves_to_on_without() { var msg = new CacheMessages(); msg.AddFailed(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Failed, "Foo.Bar.Baz(1,2,3)", "fail message"))); CurrentTestStatuses.UpdateWith(msg); var status = CurrentTestStatuses.GetStatusOf("System.Void Foo.Bar::Baz(int, int, int)"); Assert.IsNotNull(status); Assert.AreEqual("fail message", status.text); Assert.AreEqual(TestStatus.Fail, status.status); Assert.AreEqual("Foo.Bar.Baz(1,2,3)", status.Name); CurrentTestStatuses.Clear(); }
public void normal_method_resolves_passed_after_being_failed() { var msg = new CacheMessages(); msg.AddIgnored(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Failed, "Foo.Bar.Baz", "ignore message"))); CurrentTestStatuses.UpdateWith(msg); msg = new CacheMessages(); msg.RemoveTest(new CacheTestMessage("foo.dll", new TestResult(TestRunner.NUnit, TestRunStatus.Ignored, "Foo.Bar.Baz"))); CurrentTestStatuses.UpdateWith(msg); var status = CurrentTestStatuses.GetStatusOf("System.Void Foo.Bar::Baz()"); Assert.AreEqual(TestStatus.Pass, status.status); Assert.AreEqual("", status.text); }
private new void Handle(CacheMessages cache) { object selected = null; if (listViewFeedback.SelectedItems.Count == 1) { selected = listViewFeedback.SelectedItems[0].Tag; } listViewFeedback.SuspendLayout(); removeItems(cache); if (_showErrors) { foreach (var error in cache.ErrorsToAdd) { addFeedbackItem("Build error", formatBuildResult(error), Color.Red, error, selected, 0); } } if (_showFailing) { var position = getFirstItemPosition(new[] { "Test failed", "Build warning", "Test ignored" }); foreach (var failed in cache.FailedToAdd) { addFeedbackItem("Test failed", formatTestResult(failed), Color.Red, failed, selected, position); } } if (_showWarnings) { var position = getFirstItemPosition(new[] { "Build warning", "Test ignored" }); foreach (var warning in cache.WarningsToAdd) { addFeedbackItem("Build warning", formatBuildResult(warning), Color.Black, warning, selected, position); } } if (_showIgnored) { var position = getFirstItemPosition(new[] { "Test ignored" }); foreach (var ignored in cache.IgnoredToAdd) { addFeedbackItem("Test ignored", formatTestResult(ignored), Color.Black, ignored, selected, position); } } listViewFeedback.ResumeLayout(); }
public void Should_serialize_Cache_message2() { var message = new CacheMessages(); message.AddWarning(new CacheBuildMessage("project3", new BuildMessage() { ErrorMessage = "warning message", File = "warning file", LineNumber = 3, LinePosition = 4 })); var failed = new TestResult(TestRunner.Any, TestRunStatus.Failed, "AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_tests"); failed.Message = "Rhino.Mocks.Exceptions.ExpectationViolationException : ITestRunner.RunTests(any); Expected #1, Actual #0."; failed.StackTrace = new StackLineMessage[] { new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action, Action`1 setupConstraints)", "", 0), new StackLineMessage("AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_tests()", @"c:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\Core\Messaging\MessageConsumers\ProjectChangeConsumerTest.cs", 122) }; message.AddFailed(new CacheTestMessage(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\bin\Debug\AutoTest.Test.dll", failed)); failed = new TestResult(TestRunner.Any, TestRunStatus.Failed, "AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_builds"); failed.Message = "Rhino.Mocks.Exceptions.ExpectationViolationException : IBuildRunner.RunBuild(\"C:\\Users\\ack\\src\\AutoTest.Net\\src\\AutoTest.Test\\bin\\Debug\\someProject.csproj\", \"C:\\Users\\ack\\src\\AutoTest.Net\\src\\AutoTest.Test\\bin\\Debug\\AutoTest.Test.dll\"); Expected #1, Actual #0."; failed.StackTrace = new StackLineMessage[] { new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action, Action`1 setupConstraints)", "", 0), new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action)", "", 0), new StackLineMessage("AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_run_builds()", @"c:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\Core\Messaging\MessageConsumers\ProjectChangeConsumerTest.cs", 91) }; message.AddFailed(new CacheTestMessage(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\bin\Debug\AutoTest.Test.dll", failed)); failed = new TestResult(TestRunner.Any, TestRunStatus.Failed, "AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_pre_process_run_information"); failed.Message = "Rhino.Mocks.Exceptions.ExpectationViolationException : IPreProcessTestruns.PreProcess(any); Expected #1, Actual #0."; failed.StackTrace = new StackLineMessage[] { new StackLineMessage("Rhino.Mocks.RhinoMocksExtensions.AssertWasCalled[T](T mock, Action`1 action, Action`1 setupConstraints)", "", 0), new StackLineMessage("AutoTest.Test.Core.Messaging.MessageConsumers.ProjectChangeConsumerTest.Should_pre_process_run_information()", @"c:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\Core\Messaging\MessageConsumers\ProjectChangeConsumerTest.cs", 160) }; message.AddFailed(new CacheTestMessage(@"C:\Users\ack\src\AutoTest.Net\src\AutoTest.Test\bin\Debug\AutoTest.Test.dll", failed)); var output = serializeDeserialize(message); Assert.IsNotNull(output); }
private void removeItems(CacheMessages cache) { foreach (var item in cache.ErrorsToRemove) { _removeBuildItem((itm) => itm.Equals(item)); } foreach (var item in cache.WarningsToRemove) { _removeBuildItem((itm) => itm.Equals(item)); } foreach (var item in cache.TestsToRemove) { _removeTest((t) => { return (t.Assembly.Equals(item.Assembly) && t.Test.Runner.Equals(item.Test.Runner) && t.Test.Name.Equals(item.Test.Name)); }); } }
private CacheMessages buildCacheMessage() { var cache = BootStrapper.Services.Locate <IRunResultCache>(); var delta = cache.PopDeltas(); var message = new CacheMessages(); foreach (var error in delta.AddedErrors) { message.AddError(new CacheBuildMessage(error.Key, error.Value)); } foreach (var error in delta.RemovedErrors) { message.RemoveError(new CacheBuildMessage(error.Key, error.Value)); } foreach (var warning in delta.AddedWarnings) { message.AddWarning(new CacheBuildMessage(warning.Key, warning.Value)); } foreach (var warning in delta.RemovedWarnings) { message.RemoveWarning(new CacheBuildMessage(warning.Key, warning.Value)); } foreach (var failed in getTests(delta.AddedTests, TestRunStatus.Failed)) { message.AddFailed(new CacheTestMessage(failed.Key, failed.Value)); } foreach (var ignored in getTests(delta.AddedTests, TestRunStatus.Ignored)) { message.AddIgnored(new CacheTestMessage(ignored.Key, ignored.Value)); } foreach (var test in delta.RemovedTests) { message.RemoveTest(new CacheTestMessage(test.Key, test.Value)); } return(message); }
private new void Handle(CacheMessages cache) { _storeSelected(); removeItems(cache); if (_showErrors) { foreach (var error in cache.ErrorsToAdd) { addFeedbackItem("Build error", formatBuildResult(error), Color.Red, error); } } if (_showFailing) { foreach (var failed in cache.FailedToAdd) { addFeedbackItem("Test failed", formatTestResult(failed), Color.Red, failed); } } if (_showWarnings) { foreach (var warning in cache.WarningsToAdd) { addFeedbackItem("Build warning", formatBuildResult(warning), Color.Black, warning); } } if (_showIgnored) { foreach (var ignored in cache.IgnoredToAdd) { addFeedbackItem("Test ignored", formatTestResult(ignored), Color.Black, ignored); } } _restoreSelected(isSame); }
public void Should_serialize_Cache_message() { var message = new CacheMessages(); message.AddError(new CacheBuildMessage("project1", new BuildMessage() { ErrorMessage = "message", File = "file", LineNumber = 1, LinePosition = 2 })); message.RemoveError(new CacheBuildMessage("project1", new BuildMessage() { ErrorMessage = "message to remove", File = "file", LineNumber = 1, LinePosition = 2 })); message.AddError(new CacheBuildMessage("project2", new BuildMessage() { ErrorMessage = "message2", File = "file2", LineNumber = 1, LinePosition = 2 })); message.AddWarning(new CacheBuildMessage("project3", new BuildMessage() { ErrorMessage = "warning message", File = "warning file", LineNumber = 3, LinePosition = 4 })); message.RemoveWarning(new CacheBuildMessage("project3", new BuildMessage() { ErrorMessage = "warning message to remove", File = "warning file", LineNumber = 3, LinePosition = 4 })); var failed = new TestResult(TestRunner.Any, TestRunStatus.Failed, "test name"); failed.Message = "message"; failed.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod", "stack file", 5) }; message.AddFailed(new CacheTestMessage("assembly1", failed)); var failed2 = new TestResult(TestRunner.Any, TestRunStatus.Failed, "test name"); failed2.Message = "message"; failed2.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod", "stack file", 5) }; message.AddFailed(new CacheTestMessage("assembly2", failed2)); var ignored = new TestResult(TestRunner.Any, TestRunStatus.Ignored, "test name ignored"); ignored.Message = "message ignored"; ignored.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod ignored", "", 6) }; message.AddIgnored(new CacheTestMessage("assembly2", ignored)); ignored = new TestResult(TestRunner.Any, TestRunStatus.Ignored, "test name ignored"); ignored.Message = "message ignored to remove"; ignored.StackTrace = new StackLineMessage[] { new StackLineMessage("stackmethod ignored", "", 6) }; message.RemoveTest(new CacheTestMessage("assembly2", ignored)); var output = serializeDeserialize(message); Assert.AreEqual(2, output.ErrorsToAdd.Length); Assert.AreEqual("project1", output.ErrorsToAdd[0].Project); Assert.AreEqual("message", output.ErrorsToAdd[0].BuildItem.ErrorMessage); Assert.AreEqual("file", output.ErrorsToAdd[0].BuildItem.File); Assert.AreEqual(1, output.ErrorsToAdd[0].BuildItem.LineNumber); Assert.AreEqual(2, output.ErrorsToAdd[0].BuildItem.LinePosition); Assert.AreEqual(1, output.ErrorsToRemove.Length); Assert.AreEqual("message to remove", output.ErrorsToRemove[0].BuildItem.ErrorMessage); Assert.AreEqual(1, output.WarningsToAdd.Length); Assert.AreEqual("project3", output.WarningsToAdd[0].Project); Assert.AreEqual("warning message", output.WarningsToAdd[0].BuildItem.ErrorMessage); Assert.AreEqual("warning file", output.WarningsToAdd[0].BuildItem.File); Assert.AreEqual(3, output.WarningsToAdd[0].BuildItem.LineNumber); Assert.AreEqual(4, output.WarningsToAdd[0].BuildItem.LinePosition); Assert.AreEqual(1, output.WarningsToRemove.Length); Assert.AreEqual("warning message to remove", output.WarningsToRemove[0].BuildItem.ErrorMessage); Assert.AreEqual(2, output.FailedToAdd.Length); Assert.AreEqual("assembly1", output.FailedToAdd[0].Assembly); Assert.AreEqual(TestRunStatus.Failed, output.FailedToAdd[0].Test.Status); Assert.AreEqual("test name", output.FailedToAdd[0].Test.Name); Assert.AreEqual("message", output.FailedToAdd[0].Test.Message); Assert.AreEqual("stackmethod", output.FailedToAdd[0].Test.StackTrace[0].Method); Assert.AreEqual("stack file", output.FailedToAdd[0].Test.StackTrace[0].File); Assert.AreEqual(5, output.FailedToAdd[0].Test.StackTrace[0].LineNumber); Assert.AreEqual(1, output.IgnoredToAdd.Length); Assert.AreEqual("assembly2", output.IgnoredToAdd[0].Assembly); Assert.AreEqual(TestRunStatus.Ignored, output.IgnoredToAdd[0].Test.Status); Assert.AreEqual("test name ignored", output.IgnoredToAdd[0].Test.Name); Assert.AreEqual("message ignored", output.IgnoredToAdd[0].Test.Message); Assert.AreEqual("stackmethod ignored", output.IgnoredToAdd[0].Test.StackTrace[0].Method); Assert.AreEqual("", output.IgnoredToAdd[0].Test.StackTrace[0].File); Assert.AreEqual(6, output.IgnoredToAdd[0].Test.StackTrace[0].LineNumber); Assert.AreEqual(1, output.TestsToRemove.Length); Assert.AreEqual("message ignored to remove", output.TestsToRemove[0].Test.Message); }
private void handle(CacheMessages cacheMessages) { Handle(cacheMessages); }