Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs')
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs20
1 files changed, 19 insertions, 1 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs b/main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs
index 2c78d0e9ac..3aae642231 100644
--- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs
@@ -36,6 +36,7 @@ using NUnit.Engine;
using System.Xml;
using MonoDevelop.Core.Execution;
using MonoDevelop.UnitTesting.NUnit;
+using System.Text.RegularExpressions;
namespace NUnit3Runner
{
@@ -136,11 +137,28 @@ namespace NUnit3Runner
var tr = engine.GetRunner (package);
var r = tr.Explore (TestFilter.Empty);
var root = r.SelectSingleNode ("test-suite") as XmlElement;
- if (root != null)
+
+ if (root != null) {
+ if(CheckXmlForError (root, out string errorString))
+ throw new Exception (errorString);
return BuildTestInfo (root);
+ }
else
return null;
}
+
+ bool CheckXmlForError(XmlElement root, out string result)
+ {
+ var elements = root.GetElementsByTagName ("properties");
+ var skipReasonString = string.Empty;
+ foreach (XmlElement element in elements)
+ //Reason why i parse InnerXml - GetAttribute returns empty strings
+ if (element.InnerXml.Contains ("name=\"_SKIPREASON\""))
+ skipReasonString = (Regex.Match (element.InnerXml, "value=\"(.+?)\"")
+ .ToString ().Substring (6).Trim ('\"'));
+ result = skipReasonString;
+ return !string.IsNullOrEmpty (skipReasonString);
+ }
internal NunitTestInfo BuildTestInfo (XmlElement test)
{