This provides summary results such as the following:

% conkeror -q -e 'url_remoting_fn = load;' $PWD/tests/simple/*.js -f 
walnut-summarize
...
Totals: 58 run, 0 failed in 15 suites

---

Previously: http://thread.gmane.org/gmane.comp.mozilla.conkeror/1865/focus=1891
---
 modules/walnut.js |   29 ++++++++++++++++++++++++++++-
 1 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/modules/walnut.js b/modules/walnut.js
index cceab15..e122228 100644
--- a/modules/walnut.js
+++ b/modules/walnut.js
@@ -62,7 +62,33 @@ function assert_objects_equal (got, expect) {
 function walnut_results () {
     this.run = 0;
     this.failed = 0;
+    this.suites = 0;
 }
+walnut_results.prototype = {
+    show : function (title) {
+        dumpln((title ? title + ": " : "") +
+               this.run + " run, " + this.failed + " failed" +
+               (this.suites > 1 ? " in " + this.suites + " suites" : ""));
+    },
+    accumulate : function (results) {
+        this.run += results.run;
+        this.failed += results.failed;
+        this.suites += results.suites ? results.suites : 1;
+    }
+}
+
+var walnut_totals = new walnut_results();
+
+function walnut_summarize (keep) {
+    walnut_totals.show("Totals");
+    if (!keep)
+        walnut_totals = new walnut_results();
+}
+interactive("walnut-summarize",
+            "Print summary of walnut results.  With prefix, keep results to " +
+            "accumulate with future walnut runs.  By default results are " +
+            "discarded.",
+            function(I) {walnut_summarize(I.P);});
 
 function walnut_run (suite) {
     var results = new walnut_results();
@@ -88,7 +114,8 @@ function walnut_run (suite) {
     }
     if (suite.suite_teardown)
         suite.suite_teardown();
-    dumpln(results.run+" run, "+results.failed+" failed");
+    results.show();
+    walnut_totals.accumulate(results);
     return results;
 }
 
-- 
1.7.5.4

_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror

Reply via email to