Bob McConnell wrote: > Good morning, > > I have begun the task of automating functional tests for some of our web > servers. I have had some success using Selenium IDE in Firefox to > capture input sequences, exporting them to Perl scripts, then using the > Se remote control server to execute them. But I have run into one minor > problem. > > A basic test is to verify the error message returned when an invalid > password is entered. This test script is shown below. I can run this as > a simple test, or it can be part of a suite. The command line to > manually run the suite is normally: > > perl -MTest::Harness -e "@ARGV= map glob, @ARGV \ > if $^O =~ /^MSWin/; runtests @ARGV;" test/*.pl > > Unfortunately, yes this is running on a WinXP system. > > My problem is that we have multiple virtual hosts on that server, and I > need to select a specific host for each run. So when I run the harness I > need some way to pass the "tst12.dev" portion of the URL into each of > the test scripts. I can't see any way with Test::Harness or Test::More > to do this. If I can, then I have other parameters that need to be > passed in as well.
Do I understand you correctly in believing that you are trying to run specific tests against numerous hosts within a single test file? If so, I do the same sort of thing. I loop through a pre-determined number of items, and after each loop completes, reset the data: my @bad_hours = qw ( a x $ 8p p8 $8 9999 &&& hello %hash ); for ( @bad_hours ) { $plan_info{ hours } = $_; my $return = $user->add_plan( \%plan_info, $error ); isa_ok ( $return, 'ISP::Error', "$_ in the hrs field, the return" ); _reset(); } The _reset() function essentially undefs all existing params and objects, and re-initializes them to an original state. If you needed to loop in multiple variables, you could perhaps change the construct to pass in differing anon hashes instead, and de-construct and assign the values within the loop. my @data = ( { hostname => 'name', port => 8080, }, { hostname => 'blah', port => 9010, }, ); Am I on the right track as to what you are after? If so, you could also change the setup so that the core test is in a sub, and instead of looping around the code, you could just loop around a sub call instead: for my $data_href ( @data ) { test_function( $href ); } Steve
smime.p7s
Description: S/MIME Cryptographic Signature