You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by ti...@apache.org on 2010/01/04 15:09:48 UTC
svn commit: r895630 -
/incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
Author: tillw
Date: Mon Jan 4 14:09:47 2010
New Revision: 895630
URL: http://svn.apache.org/viewvc?rev=895630&view=rev
Log:
- write test results to files and add a links to these files to the HTML report
Modified:
incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
Modified: incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java?rev=895630&r1=895629&r2=895630&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java (original)
+++ incubator/vxquery/trunk/vxquery/src/test/java/org/apache/vxquery/xtest/HTMLFileReporterImpl.java Mon Jan 4 14:09:47 2010
@@ -17,6 +17,7 @@
package org.apache.vxquery.xtest;
import java.io.File;
+import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -47,6 +48,8 @@
private long endTime;
private PrintWriter out;
+
+ private File resultsDir;
public HTMLFileReporterImpl(File file) throws IOException {
results = new ArrayList<TestCaseResult>();
@@ -56,7 +59,16 @@
startTime = -1;
exDistribution = new HashMap<Class<?>, Integer>();
stDistribution = new HashMap<TestCaseResult.State, Integer>();
- out = file != null ? new PrintWriter(file) : null;
+ if (file != null) {
+ out = new PrintWriter(file);
+ String fileName = file.getName();
+ int dot = file.getName().lastIndexOf('.');
+ String dirName = (dot < 0 ? fileName : fileName.substring(0, dot)) + "_results";
+ resultsDir = file.getParent() != null
+ ? new File(file.getParent() + File.separator + dirName)
+ : new File(dirName);
+ ensureDir(resultsDir);
+ }
}
@Override
@@ -104,7 +116,7 @@
out.println("<hl>");
writeExceptionDistribution(out, exDistribution);
out.println("<hl>");
- writeResults(out, results);
+ writeResults(out, results, resultsDir);
out.println("</body></html>");
}
@@ -169,7 +181,7 @@
out.println("</table>");
}
- private static void writeResults(PrintWriter out, List<TestCaseResult> results) {
+ private static void writeResults(PrintWriter out, List<TestCaseResult> results, File resultsDir) {
out.println("<table>");
int len = results.size();
for (int i = 0; i < len; ++i) {
@@ -181,13 +193,51 @@
out.print("</td><td><a href=\"");
out.print(res.testCase.getXQueryFile().toURI());
out.print("\">");
- out.print(res.testCase.getXQueryDisplayName());
+ String queryDisplayName = res.testCase.getXQueryDisplayName();
+ out.print(queryDisplayName);
out.print("</a></td><td>");
out.print(res.time);
out.print("</td><td>");
- out.print(res.report);
+ File resultFile = createResultFile(resultsDir, res, queryDisplayName);
+ if (resultFile != null) {
+ out.print("<a href=\"");
+ out.print(resultFile.toURI());
+ out.print("\">");
+ out.print(res.report);
+ out.print("</a>");
+ } else {
+ out.print(res.report);
+ }
out.println("</td></tr>");
}
out.println("</table>");
}
+
+ private static File createResultFile(File resultsDir, TestCaseResult res, String queryDisplayName) {
+ if (resultsDir == null) {
+ return null;
+ }
+ try {
+ File resultFile = new File(resultsDir + File.separator + queryDisplayName + ".res");
+ ensureDir(resultFile.getParentFile());
+ FileWriter fw = new FileWriter(resultFile);
+ if (res.result != null) {
+ fw.write(res.result);
+ } else {
+ PrintWriter pw = new PrintWriter(fw);
+ res.error.printStackTrace(pw);
+ }
+ fw.close();
+ return resultFile;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ private static void ensureDir(File dir) throws IOException {
+ if (!dir.isDirectory() && !dir.mkdirs()) {
+ throw new IOException("could not create dir " + dir);
+ }
+ }
}
\ No newline at end of file