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.