/// <summary> /// Provides a way of seeing what got "rendered" on the Screen. Use this when you want /// to understand which elements and properties are present at the screen. /// </summary> /// <remarks>If you want to customize how this method works, check <see cref="DebugOptions"/>.</remarks> /// <returns>A string representing the screen's elements and its properties.</returns> public string Debug() { var renderedHierarchy = new Tree(Container); var _ = Container.GetPageHierarchy <View>(renderedHierarchy).ToList(); var debugText = TestingLibraryOptions.DebugOptions.TreeFormatter.FormatTree(renderedHierarchy); TestingLibraryOptions.DebugOptions.OutputTextWriter.Write(debugText); return(debugText); }
public string FormatTree(Tree debugTree) { using var stringBuffer = new StringWriter(); _ansiConsoleSettings.Out = stringBuffer; var ansiConsole = AnsiConsole.Create(_ansiConsoleSettings); var consoleTree = new SpectreTree(debugTree.Root.DebugElement.Element.GetType().Name); foreach (var rootNode in debugTree.Nodes) { FormatTreeNode(rootNode, consoleTree); } ansiConsole.Render(consoleTree); return(stringBuffer.ToString()); }