|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.tools.ant.Task | +--org.apache.tools.ant.taskdefs.optional.junit.XMLResultAggregator
This is an helper class that will aggregate all testsuites under a specific directory and create a new single document. It is not particulary clean but should be helpful while I am thinking about another technique. The main problem is due to the fact that a JVM can be forked for a testcase thus making it impossible to aggregate all testcases since the listener is (obviously) in the forked JVM. A solution could be to write a TestListener that will receive events from the TestRunner via sockets. This is IMHO the simplest way to do it to avoid this file hacking thing.
Field Summary | |
static java.lang.String |
DEFAULT_DIR
the default directory: .. |
static java.lang.String |
DEFAULT_FILENAME
the default file name: TESTS-TestSuites.xml |
protected java.util.Vector |
filesets
the list of all filesets, that should contains the xml to aggregate |
protected java.io.File |
toDir
the directory to write the file to |
protected java.lang.String |
toFile
the name of the result file |
protected java.util.Vector |
transformers
|
Fields inherited from class org.apache.tools.ant.Task |
description, location, project, target, taskName, taskType, wrapper |
Fields inherited from interface org.apache.tools.ant.taskdefs.optional.junit.XMLConstants |
ATTR_ERRORS, ATTR_FAILURES, ATTR_MESSAGE, ATTR_NAME, ATTR_PACKAGE, ATTR_TESTS, ATTR_TIME, ATTR_TYPE, ERROR, FAILURE, TESTCASE, TESTSUITE, TESTSUITES |
Constructor Summary | |
XMLResultAggregator()
|
Method Summary | |
void |
addFileSet(FileSet fs)
Add a new fileset containing the xml results to aggregate |
protected void |
addTestSuite(org.w3c.dom.Element root,
org.w3c.dom.Element testsuite)
Add a new testsuite node to the document, the main difference is that it split the previous fully qualified name into a package and a name. |
protected org.w3c.dom.Element |
createDocument()
Create a DOM tree with firstchild as 'testsuites' and aggregates all testsuite results that exists in the base directory. |
AggregateTransformer |
createReport()
|
void |
execute()
Aggregate all testsuites into a single document and write it to the specified directory and file. |
protected java.io.File |
getDestinationFile()
get the full destination file where to write the result. |
protected java.io.File[] |
getFiles()
|
void |
setTodir(java.io.File value)
Set the destination directory where the results should be written. |
void |
setTofile(java.lang.String value)
Set the name of the file aggregating the results. |
protected void |
writeDOMTree(org.w3c.dom.Document doc,
java.io.File file)
Write the DOM tree to a file. |
Methods inherited from class org.apache.tools.ant.Task |
getDescription, getLocation, getOwningTarget, getProject, getRuntimeConfigurableWrapper, getTaskName, init, log, log, maybeConfigure, setDescription, setLocation, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.util.Vector filesets
protected java.lang.String toFile
protected java.io.File toDir
protected java.util.Vector transformers
public static final java.lang.String DEFAULT_DIR
public static final java.lang.String DEFAULT_FILENAME
Constructor Detail |
public XMLResultAggregator()
Method Detail |
public AggregateTransformer createReport()
public void setTofile(java.lang.String value)
DEFAULT_FILENAME
value
- the name of the file.setTodir(File)
public void setTodir(java.io.File value)
DEFAULT_DIR
. When given a relative directory
it will resolve it from the project directory.value
- the directory where to write the results, absolute or
relative.public void addFileSet(FileSet fs)
fs
- the new fileset of xml results.public void execute() throws BuildException
execute
in class Task
BuildException
- thrown if there is a serious error while writing
the document.protected java.io.File getDestinationFile()
protected java.io.File[] getFiles()
protected void writeDOMTree(org.w3c.dom.Document doc, java.io.File file) throws java.io.IOException
doc
- the XML document to dump to disk.file
- the filename to write the document to. Should obviouslly be a .xml file.java.io.IOException
- thrown if there is an error while writing the content.protected org.w3c.dom.Element createDocument()
protected void addTestSuite(org.w3c.dom.Element root, org.w3c.dom.Element testsuite)
root
- the root element to which the testsuite node should
be appended.testsuite
- the element to append to the given root. It will slightly
modify the original node to change the name attribute and add
a package one.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |