Class: SkillBench::Services::JUnitFormatter
- Inherits:
-
Object
- Object
- SkillBench::Services::JUnitFormatter
- Defined in:
- lib/skill_bench/services/junit_formatter.rb
Overview
Formats evaluation results as JUnit XML.
Class Method Summary collapse
-
.format(result) ⇒ String
Format result as JUnit XML.
Class Method Details
.format(result) ⇒ String
Format result as JUnit XML.
Supports both legacy format (result) and modern DeltaReport format.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/skill_bench/services/junit_formatter.rb', line 15 def self.format(result) report = result.dig(:response, :report) verdict = report.respond_to?(:verdict) ? report.verdict : result[:pass] eval_name = CGI.escapeHTML(result[:eval_name].to_s) if verdict <<~XML <?xml version="1.0"?> <testsuite name="SkillBench" tests="1" failures="0"> <testcase name="#{eval_name}" classname="SkillBench"/> </testsuite> XML else score = report.respond_to?(:context_total) ? report.context_total : result[:score] escaped_score = CGI.escapeHTML(score.to_s) <<~XML <?xml version="1.0"?> <testsuite name="SkillBench" tests="1" failures="1"> <testcase name="#{eval_name}" classname="SkillBench"> <failure message="Score: #{escaped_score}">Eval failed</failure> </testcase> </testsuite> XML end end |