http://www.perlmonks.org?node_id=158407


in reply to The Joy of Test

Thanks, Ovid.
You're one step ahead of me in this respect. I have already figured out that subs stubs (for which I even write the documentation before hacking the code) are the right path toward implementing a good design, but I didn't think of integrating them into my test.pl.
Instead, I was endlessly running test cases that were doing the same thing you are saying, only more complicated.
I am going to try out your suggestion, which I foresee could simplify my coding practice. However, I have a doubt that maybe is just a technical quibble. I am used to make small test scripts, and to run them against different aspects of the module I am building up. Is there any ready-to-use idiom to make a test.pl script by assembling several small ones together?
Keep on the good work.
 _  _ _  _  
(_|| | |(_|><
 _|   

Replies are listed 'Best First'.
Re: Re: The Joy of Test
by Ovid (Cardinal) on Apr 11, 2002 at 19:53 UTC

    gmax asked if there was a "ready-to-use idiom to make a test.pl script by assembling several small ones together?"

    You can look at the documentation for Test::Harness. This module will allow you to run tests from several different sources and will return results based upon their output to STDOUT. Here's a script from the docs to have Test::Harness test itself, using all test scripts in the "t" directory.

    $ cd ~/src/devel/Test-Harness $ perl -Mblib -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t Using /home/schwern/src/devel/Test-Harness/blib t/base..............ok t/nonumbers.........ok t/ok................ok t/test-harness......ok All tests successful. Files=4, Tests=24, 2 wallclock secs ( 0.61 cusr + 0.41 csys = 1.02 C +PU)

    Cheers,
    Ovid

    Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

      using all test scripts in the "t" directory.

      Actually as you can see from the header output:

      $verbose=0; runtests @ARGV;' t/*.t <----

      only scripts named *.t will get run. This is usefull as you can stop a test script in the t/ dir running simply by renaming it say widget.test

      cheers

      tachyon

      s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print