Re: [Perlunit-devel] Towards Version 1.0
Status: Beta
Brought to you by:
mca1001
|
From: Piers C. <pdc...@bo...> - 2001-11-15 15:03:25
|
Adam Spiers <ad...@sp...> writes:
> Piers Cawley (pdc...@bo...) wrote:
>> And, dammit, the framework is really useful now and creeping towards
>> maturity. I'm thinking of picking the current trunk (with a working
>> 'ok') and tagging it 1_0_RELEASE_CANDIDATE freezing the features,
>> hammering on it to make it work with 5.7.2, writing a quick tutorial
>> pointing people at Test::Unit::TestCase and getting it up to CPAN as
>> 1.0 as soon as we're happy with it. The Roadmap for this, as I see it
>> is:
>>
>> 1. Rename Test::Unit to Test::Unit::Procedural
>> 2. Rename Test::Unit::HarnessUnit and Test::Unit::UnitHarness
>> Not sure what to yet, but I want to get these big API changes out
>> of the way before we bump the version number.
>> 3. Working ok
>> 4. Working build on 5.7.2
> 5. Change suite-building API so that MySuite really ISA TestSuite,
> and gets instantiated via new() rather than the current suite()
> nonsense. This is a *big* API change, but I'm utterly convinced
> we need to do it. I think it should be possible to keep
> backwards compatibility, however.
Ooh yes. Definitely necessary.
> 6. If a testcase fails compilation, you currently get `Suite class
> MyTests::Foo not found', rather than `Failed to load ...'; this
> needs fixing.
Yup. Actually, I *think* I may have fixed that en passant. It's to do
with TU::Loader not remembering the *initial* $@ when it goes off
trying to load the class via various methods. I sometimes wonder if
we're not trying to be 'too friendly' at this point.
> 7. Stop `make test' failing when DEBUG is enabled?
Yeah, definitely a good idea.
> 8. Move test libraries out of lib/Test/Unit/tests.
Ooh yes. Very important that one.
> 9. Deal with broken base.pm in older Perls (or we could always be
> nasty and stop supporting < 5.6, best to avoid if we can
> though).
I love the thought of being nasty, but this doesn't seem to be a good
enough reason to break the backwards compatibility that hard.
> None of these are big jobs, but I think they should all be done
> before 1.0 if we want the framework to gain respect and widespread
> usage; after all, many people will check out PerlUnit for the first
> time when they hear 1.0 being announced, and first impressions count
> for a lot.
Indeed. I'm already thinking of wording the announcement as well. I
want to steal some mindshare back from Test::More and its brothers.
>> Nice to have
>>
>> 1. Test::Unit::Loader working with whole directories.
>> 2. <YOUR SUGGESTIONS HERE>
>
> 2. Refactoring of runner classes to allow storing state in the
> runner. This paves the way for choosing which tests to skip in a
> given run, which brings me on to ...
I'm not sure this isn't a 1.1 feature though.
> 3. Test filtering. I like your Attribute::Handlers idea a lot, and
> have a very real need for decent filtering right now.
Ah yes. This may well be a good reason for breaking backward
compatibility with earlier Perls. I can't remember what the minimum is
for Attribute::Handlersx
> 3. Rethink how the tests are split up between the t/*.t. Currently
> we have t/all_tests.t, which is clearly a misnomer, and we have
> some tests for the assertion code being run from that rather than
> from t/assert.t.
Personally I don't like all_tests.t for running in 'Test::Harness'
style. It's great to be able to do TestRunner.pl tests::all_tests if
you're working in an xUnit style, but breaking things up so that 'make
test' gives people the output they expect seems like a win to me.
It'd be *really* nice if we could do the following in foo.t
package test::foo
# Define some tests for this package.
unless (caller) {
require Test::Unit::SelfRunner;
Test::Unit::SelfRunner->run;
}
Which might be surprisingly easy to push in for 1.0
While I'm about it, having a 'Runner::new' that took an argument
specifying which display style to use would be nice... Get it right
and you can have it looking at ~/.perlunitrc to select the users
preference. This is probably post 1.0 though.
> Some of these could be left until after 1.0; however given that I will
> certainly be aiming to commit some of them very soon (today, tomorrow
> ...), it's probably more hassle than it's worth branching off for the
> release straight away.
>
> I'll commit all these to doc/TODO now, and then we can twiddle with it
> as need be.
Sounds like a plan.
> Incidentally, we must remember to consult doc/release-checklist before
> making a release ...
Indeed. And I need to work out how to convince PAUSE that I'm the
maintainer now...
--
Piers
--
Piers
"It is a truth universally acknowledged that a language in
possession of a rich syntax must be in need of a rewrite."
-- Jane Austen?
|