Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re^2: testing a standalone script with parameters

by chexmix (Hermit)
on Mar 03, 2009 at 20:18 UTC ( #747883=note: print w/ replies, xml ) Need Help??


in reply to Re: testing a standalone script with parameters
in thread testing a standalone script with parameters

Ah, thanks. Test::Exception was in the script but the module wasn't present in my work environment, so I commented it out.

I'll have to install it.


Comment on Re^2: testing a standalone script with parameters
Re^3: testing a standalone script with parameters
by chexmix (Hermit) on Mar 03, 2009 at 21:36 UTC
    Hmm. That doesn't seem to have changed the output any. And I am still mainly interested in how to get those parameters passed in.

    I hope I am asking the question correctly and/or clearly. :^)

      OK, I am still getting the same output (see below) and I think I am beginning to understand why ... so I hope my fellow Monks will excuse my ox-like progress ... :^)

      In the script I am testing, what is now the sub main() calls out to a parse_opts() routine to set the values in %params. Therefore (if I am understanding this), the line I have added to myScript to enable testing, e.g.

      main( @ARGV ) unless caller( );

      ... doesn't really make sense because the script isn't accessing @ARGV directly -- it is doing so via Getopt::Long and a parse_opts() routine. In other words there is kind of a collision of approaches here.

      ... so I am still lost in a way. Am not sure if I need to totally recast the script to be tested so that it doesn't make use of this form of parameter processing, or if there is still a way to do what I want, e.g. write a test that allows one to point the script at a particular file, read 'dummy' input and create 'dummy' output, and test that that is all being done correctly.

      For what it is worth, this is what test_myScript.t looks like now:

      #!/usr/bin/perl use warnings; use strict; use Test::More tests => 5; use Test::Exception; ok( require( 'pluck4gl' ), 'loaded file okay' ) or exit; my @ARGV = ('-files=S2008-10-22_13:01.failed.lis','-output=doodad.4gl' +,'/data/mola/sap/daily4gl/S2008-10-22_13:01.4gl'); throws_ok (sub {main ( @ARGV )}, qr/Usage:/, 'main () should give a us +age error without any arguments'); throws_ok (sub {main( 'bad command' ) }, qr/Unknown command 'bad comma +nd'/, '... or with a bad command given');

      ... and here is the output:

      1..5 ok 1 - loaded file okay parameter `files' not set parameter `output' not set # Looks like you planned 5 tests but only ran 1. # Looks like your test died just after 1.

      I apologize for my utter fecklessness. I definitely need some more feck.

      Thanks,

      G

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://747883]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (7)
As of 2015-07-06 05:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (70 votes), past polls