diff options
author | Mike Krüger <mikkrg@microsoft.com> | 2018-07-16 12:40:47 +0300 |
---|---|---|
committer | Mike Krüger <mikkrg@microsoft.com> | 2018-07-16 12:40:47 +0300 |
commit | f07b396c534fb8fec780612b83ff3893acaf364c (patch) | |
tree | 95a9d0268f2b37147ffdbdd9f38d48b9f3763899 /main | |
parent | 8aa00c4b8423485115e158b0766c918eca94de14 (diff) |
Fixes issue #3869 "[TestCaseSource ("xzy")]" isn't seen as a test in
the text editor. No dot next to it.
TODO: Merge interfaces in the next AP break.
Diffstat (limited to 'main')
5 files changed, 21 insertions, 3 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/UnitTestTextEditorExtension.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/UnitTestTextEditorExtension.cs index ebbf4d0174..e9227309b5 100644 --- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/UnitTestTextEditorExtension.cs +++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.UnitTests/UnitTestTextEditorExtension.cs @@ -181,7 +181,7 @@ namespace MonoDevelop.CSharp IUnitTestMarkers markers = null; foreach (var attr in method.GetAttributes ()) { var cname = attr.AttributeClass.GetFullName (); - markers = unitTestMarkers.FirstOrDefault (m => (m.TestMethodAttributeMarker == cname || m.TestCaseMethodAttributeMarker == cname)); + markers = unitTestMarkers.FirstOrDefault (m => (m.TestMethodAttributeMarker == cname || m.TestCaseMethodAttributeMarker == cname || (m as IUnitTestMarkers2)?.TestCaseSourceAttributeMarker == cname)); if (markers != null) { if (test == null) { TagClass (parentClass, markers); diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelopNUnit.addin.xml b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelopNUnit.addin.xml index 5d867cf770..f9697f81fb 100644 --- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelopNUnit.addin.xml +++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelopNUnit.addin.xml @@ -27,6 +27,7 @@ <TestMarkers testMethodAttributeMarker="NUnit.Framework.TestAttribute" testCaseMethodAttributeMarker="NUnit.Framework.TestCaseAttribute" + testCaseSourceMethodAttributeMarker="NUnit.Framework.TestCaseSourceAttribute" ignoreTestMethodAttributeMarker="NUnit.Framework.IgnoreAttribute" ignoreTestClassAttributeMarker="NUnit.Framework.IgnoreAttribute" /> diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs index e7ebe44b4d..1f91abddaf 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs +++ b/main/src/addins/MonoDevelop.UnitTesting/Services/AbstractUnitTestEditorExtension.cs @@ -386,5 +386,17 @@ namespace MonoDevelop.UnitTesting /// <value>The ignore test method attribute marker.</value> string IgnoreTestClassAttributeMarker { get; } } + + /// <summary> + /// TODO: Merge with IUnitTestMarkers - possible replace it with an abstract class in next API break. + /// </summary> + public interface IUnitTestMarkers2 : IUnitTestMarkers + { + /// <summary> + /// TestCaseSourceAttribute is used on a parameterized test method to identify the property, method or field that will provide the required arguments. It has to be applied to a test method. + /// </summary> + /// <value>The test method attribute marker.</value> + string TestCaseSourceAttributeMarker { get; } + } } diff --git a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestMarkersExtension.cs b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestMarkersExtension.cs index 530bc19deb..0359cc308e 100644 --- a/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestMarkersExtension.cs +++ b/main/src/addins/MonoDevelop.UnitTesting/Services/UnitTestMarkersExtension.cs @@ -28,7 +28,7 @@ using Mono.Addins; namespace MonoDevelop.UnitTesting { - class UnitTestMarkersExtension: ExtensionNode, IUnitTestMarkers + class UnitTestMarkersExtension: ExtensionNode, IUnitTestMarkers2 { [NodeAttribute ("testMethodAttributeMarker")] public string TestMethodAttributeMarker { get; set; } @@ -36,6 +36,9 @@ namespace MonoDevelop.UnitTesting [NodeAttribute ("testCaseMethodAttributeMarker")] public string TestCaseMethodAttributeMarker { get; set; } + [NodeAttribute ("testCaseSourceMethodAttributeMarker")] + public string TestCaseSourceAttributeMarker { get; set; } + [NodeAttribute ("ignoreTestMethodAttributeMarker")] public string IgnoreTestMethodAttributeMarker { get; set; } diff --git a/main/tests/MonoDevelop.CSharpBinding.Tests/MonoDevelop.CSharpBinding/UnitTesteditorIntegrationTests.cs b/main/tests/MonoDevelop.CSharpBinding.Tests/MonoDevelop.CSharpBinding/UnitTesteditorIntegrationTests.cs index 63a8067a70..df0555a64e 100644 --- a/main/tests/MonoDevelop.CSharpBinding.Tests/MonoDevelop.CSharpBinding/UnitTesteditorIntegrationTests.cs +++ b/main/tests/MonoDevelop.CSharpBinding.Tests/MonoDevelop.CSharpBinding/UnitTesteditorIntegrationTests.cs @@ -51,10 +51,11 @@ namespace MonoDevelop.CSharpBinding.Tests yield return new UnitTestTextEditorExtension (); } - class UnitTestMarkers: IUnitTestMarkers + class UnitTestMarkers: IUnitTestMarkers2 { public string TestMethodAttributeMarker { get; set; } public string TestCaseMethodAttributeMarker { get; set; } + public string TestCaseSourceAttributeMarker { get; set; } public string IgnoreTestMethodAttributeMarker { get; set; } public string IgnoreTestClassAttributeMarker { get; set; } } @@ -63,6 +64,7 @@ namespace MonoDevelop.CSharpBinding.Tests new UnitTestMarkers { TestMethodAttributeMarker = "NUnit.Framework.TestAttribute", TestCaseMethodAttributeMarker = "NUnit.Framework.TestCaseAttribute", + TestCaseSourceAttributeMarker = "NUnit.Framework.TestCaseSourceAttribute", IgnoreTestMethodAttributeMarker = "NUnit.Framework.IgnoreAttribute", IgnoreTestClassAttributeMarker = "NUnit.Framework.IgnoreAttribute" } |