Acme::Test
use Acme::Test qw[Your::Module Your::Other::Module];
All the latest software craze is about regression tests and XP programming -- Write a test, make sure it fails. Then write the functionality and make sure the test now passes, etc. Although these are good ideas, who really has time for this? Fixing faililng tests is a lot of work, and one can only be happy with a test suite that has no fails.
Enter Acme::Test -- automate test-suite generation with guaranteed passing tests for your modules!
Simply write
use Acme::Test 'Your::Module';
at the top of your test scrip, and everything else goes automatically.
Acme::Test will not only 'test' your subroutines, but also any global variables and even IO and format handles! It will also make a distinction between public and private subroutines/variables.
Imagine your test.pl script would look something like this:
use lib '../devel/file-basename/lib'; use Acme::Test 'File::Basename';
Then the resulting test output would look pretty much like this:
# Testing File::Basename # [Public] Testing global array @File::Basename::EXPORT ok 1 - @EXPORT available ok 2 - @EXPORT initialized properly ok 3 - @EXPORT contains all expected elements # [Public] Testing global scalar $File::Basename::Fileparse_fstype ok 4 - $Fileparse_fstype available ok 5 - $Fileparse_fstype initialized properly ok 6 - $Fileparse_fstype content OK # [Public] Testing global scalar $File::Basename::Fileparse_igncase ok 7 - $Fileparse_igncase available ok 8 - $Fileparse_igncase initialized properly ok 9 - $Fileparse_igncase content OK # [Public] Testing global array @File::Basename::ISA ok 10 - @ISA available ok 11 - @ISA initialized properly ok 12 - @ISA contains all expected elements # [Public] Testing global scalar $File::Basename::VERSION ok 13 - $VERSION available ok 14 - $VERSION initialized properly ok 15 - $VERSION content OK # [Public] Testing subroutine File::Basename::basename() ok 16 - basename() passed expected parameters ok 17 - basename() catches faulty input ok 18 - basename() works as expected with no input ok 19 - basename() return value OK # [Public] Testing subroutine File::Basename::dirname() ok 20 - dirname() passed expected parameters ok 21 - dirname() catches faulty input ok 22 - dirname() works as expected with no input ok 23 - dirname() return value OK # [Public] Testing subroutine File::Basename::fileparse() ok 24 - fileparse() passed expected parameters ok 25 - fileparse() catches faulty input ok 26 - fileparse() works as expected with no input ok 27 - fileparse() return value OK # [Public] Testing subroutine File::Basename::fileparse_set_fstype() ok 28 - fileparse_set_fstype() passed expected parameters ok 29 - fileparse_set_fstype() catches faulty input ok 30 - fileparse_set_fstype() works as expected with no input ok 31 - fileparse_set_fstype() return value OK 1..31
In code this funky, I'm sure there are some ;)
This module by Jos Boumans <kane@cpan.org>.
This module is copyright (c) 2002 Jos Boumans <kane@cpan.org>. All rights reserved.
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.
To install Acme::Test, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Acme::Test
CPAN shell
perl -MCPAN -e shell install Acme::Test
For more information on module installation, please visit the detailed CPAN module installation guide.