On Wed, Jan 26, 2005 at 06:28:20PM -0500, David Golden wrote: > But is there any reason they can't be run in the same process?
In general I think its a bad idea for the test and the thing which generates its output to be in the same process. Why? Because then how do you, the user, change the output format? You have to trust that the test author used something that you can pass in arguments or environment variables or whatever to be able to spit out the format you want. This is, of course, the problem with any all-in-one system. The various implementations of XUnit, for example, have this problem. And then what happens if Module::Foo is using Foo::Runner that takes its arguments in one way and Module::Bar is using Bar::Runner that takes its arguments in another way? The nice part of the "test | parser" model is because there's a common format you can stick any parser on the end and generate any output you like. The current trouble is we have only one parser and its not terribly flexible. But there's no technical reason. > Or have them write the usual ok/not ok to stdout and write detail in a > structured form to some other process through a socket or to a log file. I'd like to keep the output short and human readable. YAML may be human readable but all that extra information would not be short. Your idea of sticking it all into a file may have merit. You can play with most of this now from Test::Builder->results.