Class: Ace::TestRunner::Formatters::MarkdownFormatter
- Inherits:
-
BaseFormatter
- Object
- BaseFormatter
- Ace::TestRunner::Formatters::MarkdownFormatter
- Defined in:
- lib/ace/test_runner/formatters/markdown_formatter.rb
Overview
Markdown formatter for generating individual failure report files This formatter is used internally for creating detailed failure reports It is not exposed as a user-selectable output format
Instance Attribute Summary
Attributes inherited from BaseFormatter
Instance Method Summary collapse
-
#format_report(report) ⇒ Object
Not used for report generation.
-
#format_stdout(result) ⇒ Object
Not used for console output.
-
#generate_failure_report(failure, index) ⇒ Object
Generate markdown report for a single failure.
-
#initialize(options = {}) ⇒ MarkdownFormatter
constructor
A new instance of MarkdownFormatter.
Methods inherited from BaseFormatter
#on_finish, #on_start, #on_test_complete
Constructor Details
#initialize(options = {}) ⇒ MarkdownFormatter
Returns a new instance of MarkdownFormatter.
12 13 14 15 |
# File 'lib/ace/test_runner/formatters/markdown_formatter.rb', line 12 def initialize( = {}) super @configuration = end |
Instance Method Details
#format_report(report) ⇒ Object
Not used for report generation
85 86 87 |
# File 'lib/ace/test_runner/formatters/markdown_formatter.rb', line 85 def format_report(report) {} end |
#format_stdout(result) ⇒ Object
Not used for console output
80 81 82 |
# File 'lib/ace/test_runner/formatters/markdown_formatter.rb', line 80 def format_stdout(result) "" end |
#generate_failure_report(failure, index) ⇒ Object
Generate markdown report for a single failure
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/ace/test_runner/formatters/markdown_formatter.rb', line 18 def generate_failure_report(failure, index) lines = [] # Title with status status = failure.error? ? "ERROR" : "FAILURE" lines << "# Test #{status}: #{failure.test_name}" lines << "" lines << "**Status:** #{status}" lines << "**Location:** #{failure.location}" if failure.location lines << "" # Error Message lines << "## Error Message" lines << "" lines << failure. if failure. lines << "" # Stack Trace if failure.backtrace && !failure.backtrace.empty? lines << "## Stack Trace" lines << "" lines << "```" lines << failure.backtrace.take(15).join("\n") lines << "```" lines << "" end # Related stderr if failure.stderr_warnings && !failure.stderr_warnings.empty? lines << "## Related stderr" lines << "" lines << "```" lines << failure.stderr_warnings lines << "```" lines << "" end # Code Context if failure.code_context && failure.code_context[:lines] lines << "## Code Context" lines << "" lines << "```ruby" failure.code_context[:lines].each do |line_num, line_data| marker = line_data[:highlighted] ? "← ERROR HERE" : "" lines << format("%3d: %s %s", line_num, line_data[:content], marker) end lines << "```" lines << "" end # Fix Suggestion if failure.fix_suggestion lines << "## Fix Suggestion" lines << "" lines << failure.fix_suggestion lines << "" end lines.join("\n") end |