test output for the browser

This commit is contained in:
Florian Dold 2016-11-13 17:37:48 +01:00
parent 35e7e1f464
commit f5a1a26368
2 changed files with 9 additions and 2 deletions

View File

@ -69,6 +69,10 @@ try {
var script = `
function onStatus(s) {
document.body.appendChild(document.createTextNode(s));
document.body.appendChild(document.createElement("br"));
}
function f() {
if ("undefined" == typeof System) {
console.log("can't access module loader");
@ -78,7 +82,7 @@ var script = `
.then(tt => {
SystemJS.import("http://localhost:${httpPort}/${testScript}")
.then(() => {
return tt.run();
return tt.run(onStatus);
})
.then(() => {
window.__test_over = true;

View File

@ -47,7 +47,7 @@ export function test(name: string, testFn: TestFn) {
/**
* Run all registered test case, producing a TAP stream.
*/
export async function run() {
export async function run(statusCallback?: (m: string) => void) {
console.log(`1..${tests.length}`);
for (let i in tests) {
let t = tests[i];
@ -81,6 +81,7 @@ export async function run() {
});
console.log(`# ${t.name}`);
statusCallback && statusCallback(`starting test ${t.name}`);
if (!lastMsg) {
lastMsg = "-";
@ -92,9 +93,11 @@ export async function run() {
throw Error("test did not call 'pass'");
}
console.log(`ok ${Number(i) + 1} ${lastMsg || "-"}`);
statusCallback && statusCallback(`finished test ${t.name}`);
} catch (e) {
console.error(e);
console.log(`not ok ${Number(i) + 1} ${lastMsg || "-"}`);
statusCallback && statusCallback(`failed test ${t.name}`);
}
}
}