Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • What is this short-sightedness of Test::Pod to try and declare it's own plan automatically of which you speak? Maybe I'm missing some cool functionality doing it the following way, but it seems to work well enough for me.

    if (!$ENV{PERL_AUTHOR_TESTING}) {
        plan skip_all => 'PERL_AUTHOR_TESTING environment variable not set (or zero)';
        exit;
    }

    eval qq{use Test::Pod};
    my $has_test_pod = $@ ? 0 : 4;

    eval qq{use Test::Pod::Coverage};
    my $has_test_pod_coverage = $@ ? 0 : 4;

    my $pod_test

    • It's all fine at THAT point... then when you call all_pod_tests_ok, or whatever the function is, Test::Pod will declare ANOTHER plan, and boom multiple plans explosion tests fail.
      • Don't do that, then.

        Use pod_file_ok and spell it out longhand. My latest thinking on the matter looks something like this [mongueurs.net], which I think is on the right track, although I'm still not happy with the redundancies in, for instance, $test_pod_coverage_tests and @coverage.

        • There's no way in hell I'm going to maintain 156 versions of the same pod testing script, written out longhand.

          The entire point of the short versions is to have one simple script I can have my release automation automatically copy into place as it's building the release distribution.

          Manually maintaining it all would be a massive waste of my time.
          • Do what I do, use the testpod and testpodcoverage or equivalent targets of your favourite installer module, and include an inert sham to fool CPANTS into thinking you have test files for these things.

            • Use the targets?

              I have no control over that either... CPAN Testers run what they want to run...

              Also, as far as I'm aware, there is as yet no target for "testperlminimumversion".

              Plus I have a hacked POD tester that includes support for the upcoming "begin block titles" that I wrote for Test::Inline and that Allison has said she'll add to Pod::Simple for a year now.

              And I refuse to do sham things just to shameless exploit CPANTS.
              • Ah. My approach is for authors who only want to run their author tests themselves. If you want the CPAN Testers to run your author tests, then you will have to write them as test files.

                I have no issue gaming CPANTS because I do run POD and POD coverage tests as part of the release process, which I believe makes me entirely eligible for those Kwalitee point.

                • I never run author tests.

                  They get run by my release automation, and they get run by CPAN Testers, but it would be a waste of my time to run them myself.

                  Ruthless automation and intentional ignorance of non-critical issues is the only way to deal with large numbers of modules.
                  • Irrelevant arguing about semantics. What you do on your own machine is completely inconsequential to my point. Your release automation could run the targets just as well as it runs the author tests.

                    The question is whether you want CPAN Testers to run POD and POD coverage tests. If you do, they need to be test files. If you do not, you can use the targets instead.