diff --git a/test/components/zotero-unit.js b/test/components/zotero-unit.js index a1d3cc685..c9b324f6a 100644 --- a/test/components/zotero-unit.js +++ b/test/components/zotero-unit.js @@ -33,6 +33,7 @@ ZoteroUnit.prototype = { handle:function(cmdLine) { this.tests = cmdLine.handleFlagWithParam("test", false); this.noquit = cmdLine.handleFlag("noquit", false); + this.bail = cmdLine.handleFlag("bail", false); }, dump:function(x) { diff --git a/test/content/runtests.js b/test/content/runtests.js index 2b71c50b0..54ae50352 100644 --- a/test/content/runtests.js +++ b/test/content/runtests.js @@ -22,7 +22,7 @@ function quit(failed) { } function Reporter(runner) { - var indents = 0, passed = 0, failed = 0; + var indents = 0, passed = 0, failed = 0, aborted = false; function indent() { return Array(indents).join(' '); @@ -61,10 +61,16 @@ function Reporter(runner) { + " " + test.title + "\n" + indent() + " " + err.toString() + " at\n" + indent() + " " + err.stack.replace("\n", "\n" + indent() + " ", "g")); + + if (ZoteroUnit.bail) { + aborted = true; + runner.abort(); + } }); runner.on('end', function() { - dump(passed+"/"+(passed+failed)+" tests passed.\n"); + dump(passed + "/" + (passed + failed) + " tests passed" + + (aborted ? " -- aborting" : "") + "\n"); quit(failed != 0); }); } diff --git a/test/runtests.sh b/test/runtests.sh index c856a825f..12841d818 100755 --- a/test/runtests.sh +++ b/test/runtests.sh @@ -29,13 +29,14 @@ Options -x FX_EXECUTABLE path to Firefox executable (default: $FX_EXECUTABLE) -d enable debug logging -c open JavaScript console and don't quit on completion + -f stop after first test failure -b skip bundled translator/style installation TESTS set of tests to run (default: all) DONE exit 1 } -while getopts "x:dcb" opt; do +while getopts "x:dcfb" opt; do case $opt in x) FX_EXECUTABLE="$OPTARG" @@ -46,6 +47,9 @@ while getopts "x:dcb" opt; do c) FX_ARGS="-jsconsole -noquit" ;; + f) + STOP_ON_FAILURE=true + ;; b) SKIP_BUNDLED=true ;; @@ -101,6 +105,10 @@ if [ "$SKIP_BUNDLED" = true ]; then FX_ARGS="$FX_ARGS -ZoteroSkipBundledFiles" fi +if [ "$STOP_ON_FAILURE" = true ]; then + FX_ARGS="$FX_ARGS -bail" +fi + # Clean up on exit trap "{ rm -rf \"$PROFILE\"; }" EXIT