From 75f966cb7d2f2c0d859e0e3a90a38d251a10c5e5 Mon Sep 17 00:00:00 2001 From: Suhas Chatekar Date: Sat, 8 Aug 2015 10:36:36 +0100 Subject: [PATCH] #1088 MultiNode tests can now be skipped by specifying a SkipReason --- src/core/Akka.MultiNodeTestRunner.Shared/NodeTest.cs | 1 + src/core/Akka.MultiNodeTestRunner/Discovery.cs | 3 ++- src/core/Akka.MultiNodeTestRunner/Program.cs | 6 ++++++ src/core/Akka.MultiNodeTests/MultiNodeFact.cs | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/core/Akka.MultiNodeTestRunner.Shared/NodeTest.cs b/src/core/Akka.MultiNodeTestRunner.Shared/NodeTest.cs index 8c30218f9eb..509f763aa6e 100644 --- a/src/core/Akka.MultiNodeTestRunner.Shared/NodeTest.cs +++ b/src/core/Akka.MultiNodeTestRunner.Shared/NodeTest.cs @@ -13,6 +13,7 @@ public class NodeTest public string TestName { get; set; } public string TypeName { get; set; } public string MethodName { get; set; } + public string SkipReason { get; set; } } } diff --git a/src/core/Akka.MultiNodeTestRunner/Discovery.cs b/src/core/Akka.MultiNodeTestRunner/Discovery.cs index 1e482e2fc1c..3dc0021f962 100644 --- a/src/core/Akka.MultiNodeTestRunner/Discovery.cs +++ b/src/core/Akka.MultiNodeTestRunner/Discovery.cs @@ -65,7 +65,8 @@ private NodeTest GetTestDetails(ITestCaseDiscoveryMessage nodeTest) Node = Convert.ToInt32(matches.Groups[2].Value), TestName = matches.Groups[1].Value, TypeName = nodeTest.TestClass.Class.Name, - MethodName = nodeTest.TestCase.TestMethod.Method.Name + MethodName = nodeTest.TestCase.TestMethod.Method.Name, + SkipReason = nodeTest.TestCase.SkipReason }; } diff --git a/src/core/Akka.MultiNodeTestRunner/Program.cs b/src/core/Akka.MultiNodeTestRunner/Program.cs index ed550daf0e2..9a1cb74a6b2 100644 --- a/src/core/Akka.MultiNodeTestRunner/Program.cs +++ b/src/core/Akka.MultiNodeTestRunner/Program.cs @@ -75,6 +75,12 @@ static void Main(string[] args) foreach (var test in discovery.Tests.Reverse()) { + if (!string.IsNullOrEmpty(test.Value.First().SkipReason)) + { + PublishRunnerMessage(string.Format("Skipping test {0}. Reason - {1}", test.Value.First().MethodName, test.Value.First().SkipReason)); + continue; + } + PublishRunnerMessage(string.Format("Starting test {0}", test.Value.First().MethodName)); var processes = new List(); diff --git a/src/core/Akka.MultiNodeTests/MultiNodeFact.cs b/src/core/Akka.MultiNodeTests/MultiNodeFact.cs index d8a0d8cbb82..1f21a7fcffc 100644 --- a/src/core/Akka.MultiNodeTests/MultiNodeFact.cs +++ b/src/core/Akka.MultiNodeTests/MultiNodeFact.cs @@ -27,7 +27,7 @@ public override string Skip get { return ExecutedByMultiNodeRunner.Value - ? null + ? base.Skip : "Must be executed by multi-node test runner"; } set { base.Skip = value; }