Passing parameters to Rspec scripts

Newbie here. I’m hoping someone can give me an outline of how to
re-use rspec scripts by passing them parameters.

The situation I have is testing a web application (using watir) for
about 30 different customers. Some of the customers have unique
features in their particular application instance, but much of the
codebase is shared (about 90%). So what I need to be able to do is
write rspec tests covering that shared codebase. But I need to in
some way pass in the customer name so that watir can log into the
right application instance.

Any help with this is greatly appreciated. I still have much to learn
about Rspec, but so far this seemingly simple task has me stumped.

Thanks

One way would be to use an environment variable:

 $ CUSTOMER=foo spec spec

Then read out the customer name in your specs:

 login = ENV['CUSTOMER']

Otherwise, I would guess you might be able to look at ARGV from
within, say, spec_helper.rb but I’ve never tried it.

On 3 Feb 2010, at 03:51, Levi C. wrote:

Any help with this is greatly appreciated. I still have much to learn
about Rspec, but so far this seemingly simple task has me stumped.

Thanks


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

cheers,
Matt

+447974 430184

Thanks for the response. That’s an interesting approach. I will try
that and see how far I can get with it.

If my ruby chops were a little better, I suspect I could find a more
elegant solution. Any other ideas out there?

On 2/3/10, Matt W. [email protected] wrote:

some way pass in the customer name so that watir can log into the

–
My mother used to say to me, “In this world, Elwood, you must be oh so
smart or oh so pleasant.” Well, for years I was smart. I recommend
pleasant. You may quote me.

On Thu, Feb 4, 2010 at 12:35, Levi C. [email protected] wrote:

Thanks for the response. That’s an interesting approach. I will try
that and see how far I can get with it.

If my ruby chops were a little better, I suspect I could find a more
elegant solution. Any other ideas out there?

It sounds like you want a configuration file of some kind. In Java,
I’d suggest starting with a properties file. Could you externalize the
per-customer differences to any kind of configuration file (yaml would
be the standard, no?)? Then you could build a rake task to supply the
right configuration file for each customer, or even iterate over them.

J. B. (Joe) Rainsberger :: http://www.jbrains.ca ::
http://blog.thecodewhisperer.com
Diaspar Software Services :: http://www.diasparsoftware.com
Author, JUnit Recipes
2005 Gordon Pask Award for contribution to Agile practice :: Agile
2010: Learn. Practice. Explore.