On Apr 19, 2006, at 12:14, Fergal Daly wrote:
One other reason (that I didn't see mentioned) is that objects imply
that the harness and tests are in the same process which means that
the tests can corrupt the harness and that the harness can fail to
report if the test process dies,
Well, the harness can be corrupted by bad output, too (do something
like this in a test to see what I mean:
print STDOUT "ok - Ha ha ha!\n";
). But in the JavaScript port, tests run in a browser, and there's no
such thing a separate processes, so I had no choice there. So I
decided to do both things: Test.Harness uses the objects it collects
from Test.Builder to summarize test pasess, failures, what to output
to the browser, and what not. But Test.Builder also sends all output
to a series of appropriate function calls (which in the browser all
go to the same place), so the test can run without the harness and
display results, and so that some other harness could potentially
scrape the output to summarize the results.
Best,
David