You're half way there then. Instead of using a single script that you keep changing, once you get your 'test' to run, copy it to a file with a .t extension and that's it.
Of course, using Test::More is a good choice for doing the assertions. Here's the difference between a normal test script, and a real test:
use warnings; use strict; use My::Module; my ($x, $y) = My::Module->pairs(); print "ok" if $x == $y;
test:
use warnings; use strict; use Test::More; use_ok('My::Module'); my ($x, $y) = My::Module->pairs(); is ($x, $y, "pairs() returns a pair that match"); done_testing();
The latter will tell you exactly what was expected and what failed if there's a fail. The former doesn't. Not much extra effort. So if you're testing your code with one-offs, save them to test files instead, and now that part of your code will be tested every time you run your suite.
Example test output from above on fail:
ok 1 - use My::Module; not ok 2 - pairs() returns a pair that match # Failed test 'pairs() returns a pair that match' # at pairs.t line 11. # got: '1' # expected: '2' 1..2 # Looks like you failed 1 test of 2.
...because someone made a typo in the pairs() function:
sub pairs { return (1, 2); }
In reply to Re^5: Auto-compile checking??? WTF?
by stevieb
in thread Auto-compile checking??? WTF?
by nysus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |