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:
authorDmytro Ovcharov <dmytro.ovcharov@globallogic.com>2017-11-23 14:24:05 +0300
committerDmytro Ovcharov <dmytro.ovcharov@globallogic.com>2017-11-23 14:24:05 +0300
commit2fdccb3e39fe45de54575939912551a35c00cbba (patch)
tree27f958d34e1bf699c149150be57168b9859ae223 /main/src/addins/MonoDevelop.UnitTesting.NUnit
parentb3d990a8e81b05ed56622c055c82d35e678cdaba (diff)
Now UnitTestPad shows error from runner xml data.
Diffstat (limited to 'main/src/addins/MonoDevelop.UnitTesting.NUnit')
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitAssemblyTestSuite.cs6
-rw-r--r--main/src/addins/MonoDevelop.UnitTesting.NUnit/NUnit3Runner/NUnitTestRunner.cs20
2 files changed, 23 insertions, 3 deletions
diff --git a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitAssemblyTestSuite.cs b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitAssemblyTestSuite.cs
index d018440022..4429551d76 100644
--- a/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitAssemblyTestSuite.cs
+++ b/main/src/addins/MonoDevelop.UnitTesting.NUnit/MonoDevelop.UnitTesting.NUnit/NUnitAssemblyTestSuite.cs
@@ -207,6 +207,8 @@ namespace MonoDevelop.UnitTesting.NUnit
ld.TestInfoCachePath = cacheLoaded ? null : TestInfoCachePath;
ld.Callback = delegate {
Runtime.RunInMainThread (delegate {
+ if (ld.Error != null)
+ this.ReferenceErrorMessage = ld.Error.Message;
AsyncCreateTests (ld);
});
};
@@ -333,8 +335,8 @@ namespace MonoDevelop.UnitTesting.NUnit
ld.Info = runner.GetTestInfo (ld.Path, ld.SupportAssemblies).Result;
}
} catch (Exception ex) {
- Console.WriteLine (ex);
- ld.Error = ex;
+ Console.WriteLine (ex.InnerException);
+ ld.Error = ex.InnerException;
}
finally {
try {
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)
{