public void AfterExploration(IPexExplorationComponent host, object data) { var graph = host.ExplorationServices.Searcher.ExecutionGraphBuilder as IVisualExecutionGraph; log = host.GetService <ProblemTrackDatabase>().SimpleLog; AppendLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); foreach (var rootNode in graph.ExecutionRootNodes) { LogRootNode(host, log, rootNode); } AppendLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); AppendLine("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); IFiniteMap <TypeName, StackFrameTree <PexStackFrameTag> .ExceptionNode> exceptions = host.Log.ExceptionFrameTree.GetExceptions(); foreach (var exception in exceptions) { AppendLine("TypeName: " + exception.Key); IIndexable <PexGeneratedTestName> indexable = exception.Value.Tag.Tests; foreach (var name in indexable) { AppendLine("ExceptionNode.Tag.Test: id: " + name.ID + " method: " + name.TestMethodName); } AppendLine("ExceptionNode.Tag.ExceptionState: " + exception.Value.Tag.ExceptionState); } AppendLine("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"); return; }
private void LogRootNode(IPexExplorationComponent host, StringBuilder log, IExecutionNode rootNode) { AppendLine("node: "); LogNode(rootNode, log, host); // host.GetService<IssueTrackDatabase>(). IFiniteMap <Term, IExecutionNode> successors = rootNode.Successors; AppendLine("Successors: "); foreach (SafeKeyValuePair <Term, IExecutionNode> keyValuePair in successors) { AppendLine("term: " + prettyPrintPathCondition(host, new[] { keyValuePair.Key })); LogRootNode(host, log, keyValuePair.Value); } }