class Buildr::JUnit::Report

Used by the junit:report task. Access through JUnit#report if you want to set various options for that task, for example:

JUnit.report.frames = false

Attributes

frames[RW]

True (default) to produce a report using frames, false to produce a single-page report.

params[R]

Parameters passed to the Ant JUnitReport task.

style_dir[RW]

Directory for the report style (defaults to using the internal style).

target[RW]

Target directory for generated report.

Public Class Methods

new() click to toggle source
# File lib/buildr/java/tests.rb, line 140
def initialize
 @params = {}
 @frames = true
 @target = 'reports/junit'
end

Public Instance Methods

generate(projects, target?) click to toggle source

Generates a JUnit report for these projects (must run JUnit tests first) into the target directory. You can specify a target, or let it pick the default one from the target attribute.

# File lib/buildr/java/tests.rb, line 152
def generate(projects, target = @target.to_s)
 html_in = File.join(target, 'html')
 rm_rf html_in ; mkpath html_in
 Buildr.ant('junit-report') do |ant|
 ant.taskdef :name=>'junitreport', :classname=>'org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator',
 :classpath=>Buildr.artifacts(JUnit.ant_taskdef).each(&:invoke).map(&:to_s).join(File::PATH_SEPARATOR)
 ant.junitreport :todir=>target do
 projects.select { |project| project.test.framework == :junit }.
 map { |project| project.test.report_to.to_s }.select { |path| File.exist?(path) }.
 each { |path| ant.fileset(:dir=>path) { ant.include :name=>'TEST-*.xml' } }
 options = { :format=>frames ? 'frames' : 'noframes' }
 options[:styledir] = style_dir if style_dir
 ant.report options.merge(:todir=>html_in) do
 params.each { |key, value| ant.param :name=>key, :expression=>value }
 end
 end
 end
end