diff --git a/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputManager.java b/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputManager.java index cfc95ef6e..3c4febcad 100644 --- a/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputManager.java +++ b/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputManager.java @@ -57,7 +57,7 @@ public class OutputManager { * Parse each of the output files from the test suites, and create a unified * output file. */ - public void summarizeOutput() { + public Status summarizeOutput() { LogStats log = LogStats.parse(parms.getLogFile()); List suites = new ArrayList(); @@ -71,6 +71,7 @@ public class OutputManager { OutputSummaryFormatter formatter = new OutputSummaryFormatter(parms); formatter.format(log, suites); + return formatter.figureOverallStatus(log, suites); } private static class HtmlFileFilter implements FileFilter { diff --git a/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputSummaryFormatter.java b/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputSummaryFormatter.java index a4a02140c..f73f1b0aa 100644 --- a/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputSummaryFormatter.java +++ b/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/OutputSummaryFormatter.java @@ -89,7 +89,7 @@ public class OutputSummaryFormatter { /** * The overall status for the run is the worst status of any component. */ - private Status figureOverallStatus(LogStats log, List suites) { + public Status figureOverallStatus(LogStats log, List suites) { if (log.hasErrors()) { return Status.ERROR; } diff --git a/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/SeleniumRunner.java b/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/SeleniumRunner.java index f748bd7ac..6b8640218 100644 --- a/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/SeleniumRunner.java +++ b/utilities/testrunner/src/edu/cornell/mannlib/vitro/utilities/testrunner/SeleniumRunner.java @@ -30,7 +30,8 @@ public class SeleniumRunner { this.outputManager = new OutputManager(parms); } - public void runSelectedSuites() { + public boolean runSelectedSuites() { + boolean success; try { listener.runStarted(); outputManager.cleanOutputDirectory(); @@ -52,15 +53,18 @@ public class SeleniumRunner { listener.suiteStopped(suiteDir); } listener.runEndTime(); - outputManager.summarizeOutput(); + success = true; } catch (IOException e) { listener.runFailed(e); + success = false; e.printStackTrace(); } catch (FatalException e) { listener.runFailed(e); + success = false; e.printStackTrace(); } listener.runStopped(); + return success; } private static void selectAllSuites(SeleniumRunnerParameters parms) { @@ -81,6 +85,7 @@ public class SeleniumRunner { public static void main(String[] args) { SeleniumRunnerParameters parms = null; boolean interactive = false; + boolean success = false; if ((args.length != 1) && (args.length != 2)) { usage("Wrong number of arguments."); @@ -118,8 +123,10 @@ public class SeleniumRunner { System.out.println(parms); SeleniumRunner runner = new SeleniumRunner(parms); - runner.runSelectedSuites(); + success = runner.runSelectedSuites(); } + + System.exit(success ? 0 : -1); } }