[dmd-internals] changeset 455
Jason House
jason.james.house at gmail.com
Wed Apr 28 16:33:16 PDT 2010
On Apr 28, 2010, at 5:45 PM, Andrei Alexandrescu <andrei at erdani.com>
wrote:
> The problem is scale. Phobos is pretty large already. I did make
> changes in unittests as you suggest above, but there are a lot of
> those to make. Besides, when compiling Phobos as one unit and
> unittesting everything, all unittests are run in one shot so you
> don't know about modules and stuff.
>
> I improved that by painstakingly changing the build process to print
> and unittest one Phobos module at a time, while unittests are
> disabled in all other modules. That does help but is still far from
> perfect.
I think there will be a lot of opinions on what should be done:
• print failing test(s)
• Module-level status like what you did
• Test-level status (test name + pass/fail) like someone else
suggested
• Test with other log messages
• Level based logging for customizable post-mortem review
As a reference, cruise control with nunit outputs a set of web pages.
One is a top level showing each time the test suite was run and an
overall success/failure indicator. Clicking on one brings up a summary
page with number of tests, number passing tests, number of failed
tests, number of skipped tests. Further down is a summary of tests by
category. Each one is colored based on %success, %failure, and
%skipped. Clicking on one shows individual test results with failures
first and skips second. Clicking on one of those tests shows the logs
generated while running the test.
NUnit has a concept of test fixture setup, test setup, test teardown,
and test fixture teardown. A test fixture with N tests would run test
fixture and teardown once, but run test setup and teardown either 0 or
N times. Test fixture setup failure skips all N tests. Test setup
failure skips that one test.
I think providing overidable hooks for "starting test" and "finished
test" is a 90% solution to letting people do whatever they deem best.
More information about the dmd-internals
mailing list