Sha256: 1fa682167a0ec638d02808ae471ab1231d5f660eef10a79be002495a5b823088
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
require 'nokogiri' module Jasmine module Formatters class JunitXml def initialize load_config @doc = Nokogiri::XML '<testsuites></testsuites>', nil, 'UTF-8' end def format(results) testsuites = doc.at_css('testsuites') results.each do |result| testsuite = Nokogiri::XML::Node.new 'testsuite', doc testsuite['tests'] = 1 testsuite['failures'] = result.failed? ? 1 : 0 testsuite['errors'] = 0 testsuite['name'] = result.suite_name testsuite.parent = testsuites testcase = Nokogiri::XML::Node.new 'testcase', doc testcase['name'] = result.description if result.failed? result.failed_expectations.each do |failed_exp| failure = Nokogiri::XML::Node.new 'failure', doc failure['message'] = failed_exp.message failure['type'] = 'Failure' failure.content = failed_exp.stack failure.parent = testcase end end testcase.parent = testsuite end end def done File.open(File.join(output_dir, 'junit_results.xml'), 'w') do |file| file.puts doc.to_xml(indent: 2) end end private attr_reader :doc, :config def output_dir config['junit_xml_path'] || Dir.pwd end def load_config filepath = File.join(Dir.pwd, 'spec', 'javascripts', 'support', 'jasmine_junitxml_formatter.yml') @config = YAML::load(ERB.new(File.read(filepath)).result(binding)) if File.exist?(filepath) @config ||= {} end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jasmine_junitxml_formatter-0.1.0 | lib/jasmine/formatters/junit_xml.rb |