in reply to Toggling test plans with vim

Perhaps this problem could be looked at from another angle. That is, if we can make the number of test planned automatically calculated, there should be no maintenance required to update the number of planned tests in the first place. We are 'lazy' programmers after all.

Our clever guys at work use the following rule to set up test plans:
use Test::More; .... my $tests_planned; ... # subsystem 1 test BEGIN { $tests_planned ++ } # carry out one test ... # subsystem 2 test BEGIN { $test_planned += 3 } # carry out our 3 tests ... ... # Then plan the tests for Test::More right at the end BEGIN { plan( tests => $tests_planned ); }

This way, the programmers only have to make sure the number of tests planned for a subsystem is true and square, and don't have to worry about the number of planned tests getting out of sync at all.

Replies are listed 'Best First'.
Re^2: Toggling test plans with vim
by adrianh (Chancellor) on Aug 10, 2006 at 08:04 UTC

    <bias class="author">

    If you do this sort of thing you might be interested in Test::Block where your example would be written as:

    use Test::More 'no_plan'; use Test::Block qw( $Plan ); { local $Plan = 1; # carry out one test } { local $Plan = 3; # carry out our 3 tests }


Re^2: Toggling test plans with vim
by BrowserUk (Patriarch) on Aug 10, 2006 at 06:02 UTC

    This isn't actually very lazy.

    Besides having to remember to keep the number of BEGIN blocks synchronised with the addition and removal of tests, if you ever do get out of sequence in anything other than the most trivial of tests files, working out which of the BEGIN blocks needs to be adjusted is a total pain in the neck.

    This is especially true if someone else made the change that threw the sequencing out.

    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.