ChrisKaelin
4/16/2007 11:14:00 PM
On 14 Apr., 00:44, Ryan Davis <ryand-r...@zenspider.com> wrote:
> On Apr 13, 2007, at 09:10 , ChrisKaelin wrote:
>
> > I have 3 tests using the following setup routine, that is faking
> > command line arguments via ARGV.
> > Only one of my 3 test routines seems to be actually using the ARGV
> > defined here (but the @run1 seems to be initialized, so I know at
> > least, the setup routine is called by each test). Am I missing
> > anything? I thought the setup routine is called for every test?
>
> setup IS called for every test.
>
>
>
> > def setup
> > # faking commandline arguments first
> > # no space here or the space will be
> > # part of the filenames ;-)
> > if RUBY_PLATFORM =~ /mswin32/
> > #ARGV[1] = "-h"
> > ARGV[1] = "-ltestlogfile"
> > ARGV[2] = "-cdefault_config.yml"
> > ARGV[3] = "-pC:\\TEMP"
> > ARGV[4] = "-L4"
> > ARGV[5] = "-v"
> > else
> > ARGV[1] = "-ltestlogfile"
> > ARGV[2] = "-cdefault_config.yml"
> > ARGV[3] = "-p\/tmp"
> > end
> > @run1 = TheScript.new
> > @run1.set_vars
> > end
>
> Try this instead:
>
> def setup
> ARGV.clear
> ARGV.push("-ltestlogfile", "-cdefault_config.yml")
> if RUBY_PLATFORM =~ /mswin32 then
> ARGV.push("-pC:\\TEMP", "-L4", "-v")
> else
> ARGV.push("-p\/tmp")
> end
> end
>
> I think the main problem is that ARGV is zero based and you're not
> respecting that by manually placing the elements in.
Yeah, probably that was why it only worked one round... I will try
your solution, so I can go back to use the correct way of the options
parse. Thanks a lot!