scansion.console: Print summary at end of test run

Tue, 11 Sep 2018 21:02:18 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Tue, 11 Sep 2018 21:02:18 +0100
changeset 126
87ea077acc21
parent 125
dfff8dfe8861
child 127
df5aa6a12561

scansion.console: Print summary at end of test run

scansion/console.lua file | annotate | diff | comparison | revisions
--- a/scansion/console.lua	Tue Sep 11 21:02:02 2018 +0100
+++ b/scansion/console.lua	Tue Sep 11 21:02:18 2018 +0100
@@ -40,6 +40,32 @@
 		end
 		return lines(l);
 	end;
+
+	["end"] = function (data)
+		local r = {};
+
+		local all_results = {};
+		for k, v in pairs(data.summary.all) do
+			table.insert(all_results, v);
+		end
+		table.sort(all_results, function (a, b) return a.name < b.name end);
+
+		print("");
+		print("Summary");
+		print("-------");
+
+		for _, test_result in ipairs(all_results) do
+			print("", test_result.status, test_result.name);
+		end
+
+		print("");
+
+		for _, test_result in ipairs{ "ok", "fail", "error", "total" } do
+			local count = data.summary[test_result] and #data.summary[test_result] or 0;
+			table.insert(r, tostring(count).." "..test_result);
+		end
+		return table.concat(r, " / ");
+	end;
 };
 
 return {

mercurial