diff options
author | Dmytro Ovcharov <dmytro.ovcharov@globallogic.com> | 2017-11-06 19:20:39 +0300 |
---|---|---|
committer | Dmytro Ovcharov <dmytro.ovcharov@globallogic.com> | 2017-11-06 19:20:39 +0300 |
commit | 0f37813e68af152a89b71df62aca2b7c85c9bbf8 (patch) | |
tree | 7751f3831c7dcacf721b044df319fce4944e2e91 /main/src/addins | |
parent | 4eb07a794eb7831d62e2ac64c4cc7cf23eaec07a (diff) |
Make nested namespaces optional combination.
Diffstat (limited to 'main/src/addins')
4 files changed, 27 insertions, 16 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitTestSuite.cs b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitTestSuite.cs index 77d6629e88..3f75c46b05 100644 --- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitTestSuite.cs +++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitTestSuite.cs @@ -43,6 +43,15 @@ namespace MonoDevelop.UnitTesting.NUnit this.testInfo = tinfo; this.rootSuite = rootSuite; this.TestId = tinfo.TestId; + this.canMergeWithParent = string.IsNullOrEmpty (tinfo.FixtureTypeName) && + string.IsNullOrEmpty (tinfo.FixtureTypeNamespace); + } + + bool canMergeWithParent; + public override bool CanMergeWithParent { + get { + return canMergeWithParent; + } } public override bool HasTests { diff --git a/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs b/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs index 5ca21b5dde..e7f5f1e38f 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs +++ b/main/src/addins/MonoDevelop.UnitTesting/Gui/TestNodeBuilder.cs @@ -72,7 +72,7 @@ namespace MonoDevelop.UnitTesting var singleTestSuffix = String.Empty; if (test is UnitTestGroup unitTestGroup) - singleTestSuffix = GetSuffix (unitTestGroup); + singleTestSuffix = GetSuffix (unitTestGroup, treeBuilder.Options ["CombineTestNamespaces"] ); var title = RemoveGenericArgument (test.Title); title = test.Title + singleTestSuffix ; @@ -100,24 +100,21 @@ namespace MonoDevelop.UnitTesting } } - static string GetSuffix (UnitTestGroup unitTestGroup) + static string GetSuffix (UnitTestGroup unitTestGroup, bool combineNested ) { var rootTitle = unitTestGroup?.Title; var stringBuilder = new StringBuilder (); while (unitTestGroup != null) - if (ContainsSingleUnitTestGroup (unitTestGroup) && !(unitTestGroup is SolutionFolderTestGroup)) { - var testCollection = unitTestGroup.Tests; - var singleChildTestGroup = testCollection [0] as UnitTestGroup; - stringBuilder.Append (".") - .Append (singleChildTestGroup.Title); + if (ContainsUnitTestCanMerge (unitTestGroup) && + !(unitTestGroup is SolutionFolderTestGroup)) { + var testCollection = unitTestGroup.Tests; + var singleChildTestGroup = testCollection [0] as UnitTestGroup; + if(singleChildTestGroup.CanMergeWithParent && combineNested) + stringBuilder.Append (".").Append (singleChildTestGroup.Title); unitTestGroup = singleChildTestGroup; } else unitTestGroup = null; - - var result = stringBuilder.ToString (); - if (result.TrimStart ('.') == rootTitle) - result = String.Empty; - return result; + return stringBuilder.ToString (); } public override void BuildChildNodes (ITreeBuilder builder, object dataObject) @@ -126,7 +123,7 @@ namespace MonoDevelop.UnitTesting if (test == null) return; - if (ContainsSingleUnitTestGroup (test)) { + if (ContainsUnitTestCanMerge (test) ) { BuildChildNodes (test, builder); return; } @@ -135,8 +132,9 @@ namespace MonoDevelop.UnitTesting void BuildChildNodes (UnitTestGroup test, ITreeBuilder builder) { + var combineTestNamespaces = builder.Options ["CombineTestNamespaces"]; bool isSolution = test is SolutionFolderTestGroup; - if (!isSolution && ContainsSingleUnitTestGroup(test)) { + if (!isSolution && ContainsUnitTestCanMerge(test) && combineTestNamespaces) { var unitTestGroup = test.Tests[0] as UnitTestGroup; BuildChildNodes (unitTestGroup, builder); return; @@ -144,8 +142,9 @@ namespace MonoDevelop.UnitTesting builder.AddChildren (test.Tests); } - static bool ContainsSingleUnitTestGroup(UnitTestGroup test) => - test.Tests.Count == 1 && test.Tests[0] is UnitTestGroup; + static bool ContainsUnitTestCanMerge(UnitTestGroup test) => + test.Tests.Count == 1 && test.Tests[0] is UnitTestGroup && + test.Tests [0].CanMergeWithParent; public override bool HasChildNodes (ITreeBuilder builder, object dataObject) { diff --git a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.addin.xml b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.addin.xml index 59160ae129..c2158343b2 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.addin.xml +++ b/main/src/addins/MonoDevelop.UnitTesting/MonoDevelop.UnitTesting.addin.xml @@ -34,6 +34,7 @@ <SolutionPad id = "MonoDevelop.UnitTesting.TestPad" defaultLayout="*" defaultPlacement = "Right" defaultStatus="AutoHide" _label = "Unit Tests" icon = "nunit-pad-icon" class = "MonoDevelop.UnitTesting.TestPad" group="Unit Testing"> <PadOption id = "ShowTestTime" _label = "Show Test Time" defaultValue = "False" /> <PadOption id = "ShowTestCounters" _label = "Show Test Counters" defaultValue = "False" /> + <PadOption id = "CombineTestNamespaces" _label = "Combine Test Namespaces" defaultValue = "True" /> <NodeBuilder id = "TestNode" class = "MonoDevelop.UnitTesting.TestNodeBuilder"/> </SolutionPad> <Pad id="MonoDevelop.UnitTesting.TestResultsPad" _label="Test Results" icon="nunit-pad-icon" class="MonoDevelop.UnitTesting.TestResultsPad" defaultPlacement = "Bottom" defaultLayout="UnitTesting" defaultStatus="AutoHide" group="Unit Testing"/> diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs index b759443617..bf02475122 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs +++ b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTest.cs @@ -53,6 +53,8 @@ namespace MonoDevelop.UnitTesting bool historicResult; bool resultLoaded; + public virtual bool CanMergeWithParent => false; + public string FixtureTypeNamespace { get; set; |