|Subject:||On Windows 7, 'prove -j N..' launches test scripts in parallel but executes tests sequentially|
|Date:||Wed, 12 Mar 2014 09:00:00 -0400|
|To:||bug-Test-Harness [...] rt.cpan.org|
|From:||Phil Wells <philwells [...] thephilwells.com>|
As seen here:I've got a couple of .t files in a folder. Each test script launches its own instance of WebDriver (using Selenium::Remotre::Driver) and therefore opens its own browser. These then pass their instructions to page objects in separate modules. The page objects are where most of the test assertions occur, alas. I run them in parallel using, say, 'prove -j2 testfolder'. When I do this I see two browsers open, responding to the Selenium calls, but the test results and browser action indicate that the second script only goes as far as just before the first script's first call to 'Test::More', then it hangs until the first script has finished. I've tried just putting bare pass() calls at the top of each .t file and confirmed that the test case in the second script isn't tried until the entire first script is completed. Here's the output. While the first test is running I see this: ===( 4;12 4/40 0/? )=========================================== The first pair of numbers and the left number in the second pair go up as the first script's test cases are verified. After this, when the second script starts, the output changes to this: testfolder\test2.t .. 4/35 With the left number increasing as test cases are executed. Tests are executed in parallel as expected from *nix terminals. I'm running this from the command line in 64-bit Windows 7, ActiveState Perl v5.16.1. CPAN shows Prove is up to date (3.28).