diff --git a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs index b4ec7dd0..ea67aa9a 100644 --- a/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs +++ b/src/TestCentric/testcentric.gui/Presenters/DisplayStrategy.cs @@ -84,18 +84,20 @@ public virtual void OnTestFinished(ResultNode result) foreach (TreeNode treeNode in GetTreeNodesForTest(result)) { _view.SetImageIndex(treeNode, imageIndex); - UpdateTreeNodeName(treeNode); } } public virtual void OnTestRunStarting() { _view.ResetAllTreeNodeImages(); - UpdateTreeNodeNames(); + if (_settings.Gui.TestTree.ShowTestDuration) + _view.InvokeIfRequired(() => UpdateTreeNodeNames()); } public virtual void OnTestRunFinished() { + if (_settings.Gui.TestTree.ShowTestDuration) + _view.InvokeIfRequired(() => UpdateTreeNodeNames()); } // Called when either the display strategy or the grouping @@ -205,11 +207,13 @@ public void UpdateTreeNodeNames() private void UpdateTreeNodeNames(TreeNodeCollection nodes) { + _view.TreeView.BeginUpdate(); foreach (TreeNode treeNode in nodes) { UpdateTreeNodeName(treeNode); UpdateTreeNodeNames(treeNode.Nodes); } + _view.TreeView.EndUpdate(); } private void UpdateTreeNodeName(TreeNode treeNode) diff --git a/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs b/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs index e9eb9809..8a81d69d 100644 --- a/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs +++ b/src/TestCentric/tests/Presenters/NUnitTreeDisplayStrategyTests.cs @@ -133,7 +133,7 @@ public void OnTestFinished_TreeNodeImage_IsUpdated(string testResult, int expect } [Test] - public void OnTestFinished_ShowDurationIsInactive_TreeNodeName_IsUpdated() + public void OnTestRunFinished_ShowDurationIsInactive_TreeNodeName_IsUpdated() { // Arrange TestNode testNode = new TestNode(""); @@ -142,8 +142,13 @@ public void OnTestFinished_ShowDurationIsInactive_TreeNodeName_IsUpdated() _model.GetResultForTest(testNode.Id).Returns(result); _view.InvokeIfRequired(Arg.Do(x => x.Invoke())); + var nodes = new TreeNode().Nodes; + nodes.Add(treeNode); + _view.Nodes.Returns(nodes); + _view.TreeView.Returns(new TreeView()); + // Act - _strategy.OnTestFinished(result); + _strategy.OnTestRunFinished(); // Assert Assert.That(treeNode.Text, Is.EqualTo("Test1")); @@ -160,8 +165,13 @@ public void OnTestFinished_ShowDurationIsActive_TreeNodeName_IsUpdated() _model.GetResultForTest(testNode.Id).Returns(result); _view.InvokeIfRequired(Arg.Do(x => x.Invoke())); + var nodes = new TreeNode().Nodes; + nodes.Add(treeNode); + _view.Nodes.Returns(nodes); + _view.TreeView.Returns(new TreeView()); + // Act - _strategy.OnTestFinished(result); + _strategy.OnTestRunFinished(); // Assert Assert.That(treeNode.Text, Does.Match(@"Test1 \[1[,.]500s\]"));