On Thursday 29 June 2006 07:13, Andy Lester wrote:
> Tomorrow, Adam Kennedy and I (and Schwern?) will be banging on
> Test::Harness.
>
> Any bugs that we especially need to work on?
>

Well, giving my angle as the Test::Run maintainer (which is a fork of 
Test::Harness):

1. I may have eliminated some bugs in Test::Run without reporting them in 
Test::Harness yet. (not maliciously - it was an accident).

2. Some of my refactorings caused some bugs by accident (which was visible in 
the output) which were not caught by the test suite. As a result, I added 
some tests to Test::Run, but did not send a patch with them to Test::Harness. 

Hoping that I'm not defaming Andy or something, he told me that he isn't 
interested in such tests at this point, because the output is still 
dynamically changing. I think that instead the tests should still be there, 
and would need to be modified (preferably before the behaviour is modified). 

Otherwise, a wrong refactoring can easily break something. (As was the case 
for me).

3. I separated Test::Harness into Test::Run and Test::Run::CmdLine. Test::Run 
is the backend with a (hopefully) sane programmable API (with no global 
variables, environment variables, command line processing, etc.). 
Test::Run::CmdLine handles all the command line stuff. Both can be inherited 
or over-rided with plugins (or possibly traits/roles which I did not play 
with yet, but think I understand). 

Normally a T::R::CL plugin also registers an appropriate T::R plugin. The 
default behaviour for Test::Run currently is to behave much like 
Test::Harness. However, that may change as I may wish to move some of the 
functionality to plugins, so one can more easily customise it.

4. I implemented the prove command as a class, with a small command line 
wrapper: 

http://xrl.us/nsub (Link to search.cpan.org)

5. One important note: Test::Run is not backwards-compatible with 
Test::Harness. The documented external API (and the internals even more so) 
were broken. I once contemplated writing a Test::Harness-like wrapper for 
Test::Run but I did not get to it yet.

In any case, I've been actively using the Test::Run::CmdLine "runprove" 
utility to run some of my own test files. See:

http://flickr.com/photos/[EMAIL PROTECTED]/68430623/

I also would like to integrate it with the makefile/Buildfile generated by 
Module::Build and ExtUtils::MakeMaker (at least using some wrappers inside 
the Build.PL or Makefile.PL scripts, which I have yet to figure out how to 
write.)

------------------------

All these are just notes for what I did with Test::Run - you can take them or 
leave them. I don't mind you hacking on Test::Harness (it could use some 
work), but naturally would also love to receive any patches to Test::Run, 
which also still has some issues (like the fact most of the Test::Harness POD 
documentation was not forward-ported). The code can be checked out using svn:

http://svn.berlios.de/svnroot/repos/web-cpan/Test-Harness-NG/trunk/

(or alternatively with https)

If you register at Berlios.de and send me a patch, I'll add you as a commiter 
so you can commit it. (Following Audrey Tang's on IRC lead).

Regards,

        Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish      [EMAIL PROTECTED]
Homepage:        http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.

Reply via email to