diff --git a/src/Mono.Android/Test/System.Net/NetworkInterfaces.cs b/src/Mono.Android/Test/System.Net/NetworkInterfaces.cs index c4d8d5eef62..17176eb3123 100644 --- a/src/Mono.Android/Test/System.Net/NetworkInterfaces.cs +++ b/src/Mono.Android/Test/System.Net/NetworkInterfaces.cs @@ -100,7 +100,7 @@ bool HardwareAddressesAreEqual (byte[] one, byte[] two) } } - [Test] + [Test, Category("NetworkInterfaces")] public void DotNetInterfacesShouldEqualJavaInterfaces () { List dotnetInterfaces = GetInfos (MNetworkInterface.GetAllNetworkInterfaces ()); diff --git a/tests/TestRunner.Core/TestInstrumentation.cs b/tests/TestRunner.Core/TestInstrumentation.cs index 6c586dabca5..2e754f82b39 100644 --- a/tests/TestRunner.Core/TestInstrumentation.cs +++ b/tests/TestRunner.Core/TestInstrumentation.cs @@ -315,6 +315,17 @@ protected virtual Assembly LoadTestAssembly (string filePath) return Assembly.LoadFrom (filePath); } + protected Dictionary GetStringExtrasFromBundle () + { + var filtersFromBundle = new Dictionary (); + foreach (var key in arguments.KeySet ()) { + string value = arguments.GetString (key); + if (!string.IsNullOrEmpty (value)) + filtersFromBundle.Add (key, value); + } + return filtersFromBundle; + } + protected virtual void ConfigureFilters (TRunner runner) {} diff --git a/tests/TestRunner.NUnit/NUnitTestInstrumentation.cs b/tests/TestRunner.NUnit/NUnitTestInstrumentation.cs index af82a84d56c..878cd592c74 100644 --- a/tests/TestRunner.NUnit/NUnitTestInstrumentation.cs +++ b/tests/TestRunner.NUnit/NUnitTestInstrumentation.cs @@ -42,6 +42,17 @@ protected override NUnitTestRunner CreateRunner (LogWriter logger, Bundle bundle }; } + IEnumerable GetFilterValuesFromExtras (string key) + { + Dictionary extras = GetStringExtrasFromBundle (); + if (extras.ContainsKey (key)) { + string filterValue = extras [key]; + if (!string.IsNullOrEmpty (filterValue)) + return filterValue.Split (':'); + } + return null; + } + protected override void ConfigureFilters (NUnitTestRunner runner) { base.ConfigureFilters(runner); @@ -54,9 +65,15 @@ protected override void ConfigureFilters (NUnitTestRunner runner) Log.Info (LogTag, "Configuring test categories to include:"); ChainCategoryFilter (IncludedCategories, false, ref filter); + Log.Info (LogTag, "Configuring test categories to include from extras:"); + ChainCategoryFilter (GetFilterValuesFromExtras ("include"), false, ref filter); + Log.Info (LogTag, "Configuring test categories to exclude:"); ChainCategoryFilter (ExcludedCategories, true, ref filter); + Log.Info(LogTag, "Configuring test categories to exclude from extras:"); + ChainCategoryFilter (GetFilterValuesFromExtras ("exclude"), true, ref filter); + Log.Info (LogTag, "Configuring tests to exclude (by name):"); ChainTestNameFilter (ExcludedTestNames?.ToArray (), ref filter);