isntNum()in TestBuilder.js now properly convert values to numbers using the global Number() function.
unlike()that are not strings now always fail to match the regular expression.
plan()now outputs better error messages.
isDeeply()now works better with circular and repeating references.
diag()is now smarter about converting objects to strings before outputting them.
!=, respectively) instead of stringified comparisons, as the equivalence checks are more generally useful. Use
cmpOk(got, "eq", expect)to explicitly compare stringified versions of values.
noEnding()accessors will now properly assign a non-null value passed to them.
details()now have the appropriate structures.
diag()now always properly adds a # character after newlines.
endOutput()to TestBuilder to set up function reference to which to send output for various purposes. The first three each default to
endOutout()defaults to the
appendDatafunction of a text element inside an element with the ID test or, failing that,
todoSkip()now properly add # after all newlines in their messages.
Many thanks to Marshall Roch for help debugging issues in IE.
Now, there is one outstanding issue I'd like to address before I would consider this production ready (aside from porting all the remaining tests from Test::Simple): how to harness the output. Harnessing breaks down into a number of issues:
How to run all tests in a single window. I might be able to write a build script that builds a single HTML file that includes all the other HTML files in iframes or some such. But then will each run in its own space without stomping on the others? And how would the harness pull in the results of each? It might be able to go into each of its children and grab the resultsfrom the TestBuilder objects...
More Feedback/advice/insults welcome!