Chris Dolan wrote:
>
> On May 8, 2007, at 8:50 AM, Nathan Haigh wrote:
>
>> I hope this is the correct place for this question!
>>
>> I'm trying to use Test::Kwalitee with the following test script:
>>
>> -- test script start --
>> [...snip...]
>> -- test script end --
>>
>> However, it seems to die unexpectedly with the following output:
>>
>> -- output start -
>> [...snip...]
>> -- output end --
>>
>>
>> Any idea what this might be about?
>>
>> Cheers
>> Nathan
>
> Take a look at this report:
>   http://rt.cpan.org/Public/Bug/Display.html?id=24832
> It seems that Test::Kwalitee hard-codes the names of the Kwalitee
> tests, but Module::CPANTS::Kwalitee has changed since then.
>
> So, Test::Kwalitee either needs a quick patch to catch up to now or an
> overhaul to auto-detect the kwalitee tests from M::C::K.
>
> Chris
>
> -- 
> Chris Dolan, Equilibrious LLC, http://equilibrious.net/
> Public key: http://chrisdolan.net/public.key
> vCard: http://chrisdolan.net/ChrisDolan.vcf
>
>
>

Thanks for that Chris!

I'm having a look at the Test::Kwalitee module and I'm in the process of
re-writing part of it, so that it uses the list of indicators defined by
Module::CPANTS::Kwalitee rather than the hard-coded ones.

my $mck=Module::CPANTS::Kwalitee->new;
my $indicators_hash = $mck->get_indicators_hash;


A side effect of this is that the test comments are no longer like:

"distribution is extractable"


but is the name of the indicator instead. This is better as they will
nolonger need to have test descriptions hard coded and if new Kwalitee
indicators are included in Module::CPANTS::Kwalitee, then they will be
automatically tested.

The only bit I think needs to be hard-coded into Test::Kwalitee are the
indicators that rally have no reason to be tested when running the tests
on module files. I.e. those tests that need a tarball or the likes. The
indicators I've hard coded to miss are:
@always_excluded_tests = qw(
    -extracts_nicely        # requires a tarball
    -has_version            # requires a tarball
    -has_proper_version     # requires a tarball
    -is_prereq              # don't really need other modules to require
this one
    -no_cpants_errors       # don't need to check for CPANTS errors
);

So the default set of Kwalitee indicators that are tested for are:
extractable
has_readme
has_manifest
has_meta_yml
has_buildtool
has_changelog
no_symlinks
has_tests
buildtool_not_executable
has_example
metayml_is_parsable
metayml_has_license
metayml_conforms_spec_1_0
metayml_conforms_spec_1_2
proper_libs
no_pod_errors
has_working_buildtool
use_strict
has_test_pod
has_test_pod_coverage
has_humanreadable_license
manifest_matches_dist

All I now need to do is to make relevant fixes to the Test::Kwalitee
module so that it passes all the new Kwalitee indicators!!

Let me know if you think this is a good idea or not!

Cheers
Nathan






Reply via email to