private void PrintSpecRunResults(FactData data) { WriteSpecMessage(string.Format("Results for {0}", data.FactName)); WriteSpecMessage(string.Format("Start time: {0}", new DateTime(data.StartTime, DateTimeKind.Utc))); foreach (var node in data.NodeFacts) { WriteSpecMessage(string.Format(" --> Node {0}: {1} [{2} elapsed]", node.Value.NodeIndex, node.Value.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", node.Value.Elapsed)); } WriteSpecMessage(string.Format("End time: {0}", new DateTime(data.EndTime.GetValueOrDefault(DateTime.UtcNow.Ticks), DateTimeKind.Utc))); WriteSpecMessage(string.Format("FINAL RESULT: {0} after {1}.", data.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", data.Elapsed)); //If we had a failure if (data.Passed.GetValueOrDefault(false) == false) { WriteSpecMessage("Failure messages by Node"); foreach (var node in data.NodeFacts) { if (node.Value.Passed.GetValueOrDefault(false) == false) { WriteSpecMessage(string.Format("<----------- BEGIN NODE {0} ----------->", node.Key)); foreach (var resultMessage in node.Value.ResultMessages) { WriteSpecMessage(String.Format(" --> {0}", resultMessage.Message)); } if(node.Value.ResultMessages == null || node.Value.ResultMessages.Count == 0) WriteSpecMessage("[received no messages - SILENT FAILURE]."); WriteSpecMessage(string.Format("<----------- END NODE {0} ----------->", node.Key)); } } } }
public SpecRunCoordinator(string className, string methodName, IList<NodeTest> nodes) { Nodes = nodes; MethodName = methodName; ClassName = className; FactData = new FactData(string.Format("{0}.{1}", className, methodName)); _nodeActors = new Dictionary<int, IActorRef>(); SetReceive(); }
public string BuildGroupItems(FactData spec) { var groups = spec.NodeFacts .Select( nf => string.Format("{{ id:{0}, content:'Node {0}' }}", nf.Value.NodeIndex)) .Concat(@"{ id:-1, content:'Misc' }"); return string.Join(",\r\n", groups); }
public string BuildGroupItems(FactData spec) { var groups = spec.NodeFacts .Select( nf => string.Format("{{ id:{0}, content:'Node {0}:{1}' }}", nf.Value.NodeIndex, nf.Value.NodeRole)) .Concat(@"{ id:-1, content:'Misc' }"); return(string.Join(",\r\n", groups)); }
public string BuildOptions(FactData spec) { var events = spec.NodeFacts.SelectMany( nodeFact => nodeFact.Value.EventStream .Select( nodeMessage => nodeMessage.TimeStamp)) .ToList(); var startEventTimeParameter = "null"; var endEventTimeParameter = "null"; if (events.Count > 0) { var firstEventTimeStamp = events.Aggregate( (aggregate, nextValue) => aggregate > nextValue ? nextValue : aggregate); var lastEventTimeStamp = events.Aggregate( (aggregate, nextValue) => aggregate < nextValue ? nextValue : aggregate); var startEventTime = new DateTime(firstEventTimeStamp); var endDisplayTime = new DateTime(lastEventTimeStamp); // TODO: Find a better way of calculating additional time from message length // The last message is the 3 second wait. Which is about half the delta from start to end in length. var startEndDelta = (endDisplayTime - startEventTime).Ticks / 2; endDisplayTime = endDisplayTime.AddTicks(startEndDelta); startEventTimeParameter = string.Format("'{0}'", startEventTime.ToString("o")); endEventTimeParameter = string.Format("'{0}'", endDisplayTime.ToString("o")); } return string.Format( "{{ start:{0}, end:{1}, align:'left', clickToUse:true }}", startEventTimeParameter, endEventTimeParameter); }
public string BuildOptions(FactData spec) { var events = spec.NodeFacts.SelectMany( nodeFact => nodeFact.Value.EventStream .Select( nodeMessage => nodeMessage.TimeStamp)) .ToList(); var startEventTimeParameter = "null"; var endEventTimeParameter = "null"; if (events.Count > 0) { var firstEventTimeStamp = events.Aggregate( (aggregate, nextValue) => aggregate > nextValue ? nextValue : aggregate); var lastEventTimeStamp = events.Aggregate( (aggregate, nextValue) => aggregate < nextValue ? nextValue : aggregate); var startEventTime = new DateTime(firstEventTimeStamp); var endDisplayTime = new DateTime(lastEventTimeStamp); // TODO: Find a better way of calculating additional time from message length // The last message is the 3 second wait. Which is about half the delta from start to end in length. var startEndDelta = (endDisplayTime - startEventTime).Ticks / 2; endDisplayTime = endDisplayTime.AddTicks(startEndDelta); startEventTimeParameter = string.Format("'{0}'", startEventTime.ToString("o")); endEventTimeParameter = string.Format("'{0}'", endDisplayTime.ToString("o")); } return(string.Format( "{{ start:{0}, end:{1}, align:'left', clickToUse:true }}", startEventTimeParameter, endEventTimeParameter)); }
public string BuildTimelineItem(FactData spec) { var messages = spec.RunnerMessages .Select(m => TimelineItemFactory.CreateSpecMessage(Prefix, m.Message, m.NodeIndex, m.TimeStamp)); var facts = spec.NodeFacts.SelectMany( nodeFact => nodeFact.Value.EventStream.Select( nodeMessage => TimelineItemFactory.CreateNodeFact( Prefix, nodeMessage.Message, nodeMessage.NodeIndex, nodeMessage.TimeStamp))); var itemStrings = messages.Concat(facts) .Select(i => i.ToJavascriptString()); return string.Join(",\r\n", itemStrings); }
public string BuildTimelineItem(FactData spec) { var messages = spec.RunnerMessages .Select(m => TimelineItemFactory.CreateSpecMessage(Prefix, m.Message, m.NodeIndex, m.TimeStamp)); var facts = spec.NodeFacts.SelectMany( nodeFact => nodeFact.Value.EventStream.Select( nodeMessage => TimelineItemFactory.CreateNodeFact( Prefix, nodeMessage.Message, nodeMessage.NodeIndex, nodeMessage.TimeStamp))); var itemStrings = messages.Concat(facts) .Select(i => i.ToJavascriptString()); return(string.Join(",\r\n", itemStrings)); }
private void PrintSpecRunResults(FactData data) { WriteSpecMessage(string.Format("Results for {0}", data.FactName)); WriteSpecMessage(string.Format("Start time: {0}", new DateTime(data.StartTime, DateTimeKind.Utc))); foreach (var node in data.NodeFacts) { WriteSpecMessage(string.Format(" --> Node {0}: {1} [{2} elapsed]", node.Value.NodeIndex, node.Value.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", node.Value.Elapsed)); } WriteSpecMessage(string.Format("End time: {0}", new DateTime(data.EndTime.GetValueOrDefault(DateTime.UtcNow.Ticks), DateTimeKind.Utc))); WriteSpecMessage(string.Format("FINAL RESULT: {0} after {1}.", data.Passed.GetValueOrDefault(false) ? "PASS" : "FAIL", data.Elapsed)); //If we had a failure if (data.Passed.GetValueOrDefault(false) == false) { WriteSpecMessage("Failure messages by Node"); foreach (var node in data.NodeFacts) { if (node.Value.Passed.GetValueOrDefault(false) == false) { WriteSpecMessage(string.Format("<----------- BEGIN NODE {0} ----------->", node.Key)); foreach (var resultMessage in node.Value.ResultMessages) { WriteSpecMessage(String.Format(" --> {0}", resultMessage.Message)); } if (node.Value.ResultMessages == null || node.Value.ResultMessages.Count == 0) { WriteSpecMessage("[received no messages - SILENT FAILURE]."); } WriteSpecMessage(string.Format("<----------- END NODE {0} ----------->", node.Key)); } } } }
protected abstract void ReceiveFactData(FactData data);
public string BuildSpecificationId(FactData spec) { return spec.FactName.Replace(".", "_"); }
public string BuildSpecificationId(FactData spec) { return(spec.FactName.Replace(".", "_")); }
protected override void ReceiveFactData(FactData data) { PrintSpecRunResults(data); }
public Function() { _client = new FactData(); }
protected override void ReceiveFactData(FactData data) { }
protected override void ReceiveFactData(FactData data) { //Ask the TestRunCoordinator to give us the latest state Sender.Tell(new TestRunCoordinator.RequestTestRunState()); }