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:
http://stackoverflow.com/questions/18897186/why-does-the-perl-app-prove-launch-my-scripts-in-parallel-but-not-execute-test
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).