Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Forking prove that allows you to preload modules with -M
Perl
branch: master

This branch is 78 commits behind miyagawa:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib/App
t
xt
.gitignore
.shipit
Changes
MANIFEST
MANIFEST.SKIP
Makefile.PL
README
TODO

README

NAME
    forkprove - forking prove

SYNOPSIS
      forkprove -MMoose -MCatalyst -MDBIx::Class -j8 -lr t

DESCRIPTION
    forkprove is a forking version of prove that allows you to preload
    modules with "-M" and then run each test after forking, potentially
    makes most of the tests to run faster without an overhead of loading the
    same modules again and again, while having an isolated, clean testing
    environment with a fork.

    It works well with parallel testing as well, combined with "-j" option.

CAVEATS
  Test::More
    Do not try to preload Test::Builder and friends because doing so will
    not output clean TAP.

  Known patterns to fail
    Following kind of tests are known to fail.

    *   Tests that rely on the value of $FindBin::Bin. There's a workaround
        in forkprove to correct the value, but if your test relies on the
        timing of initialization of FindBin, it might fail.

    *   Tests that expects "END" block to run after each ".t"

WHY
    Test::Aggregate allows you to create a nested TAP output by running a
    whole bunch of ".t" files from a directory.

    forkprove shares the basic idea, but it creates a whole new test
    environment by making a copy of the process with fork for each test,
    which means it could run your tests that rely on the singleton state
    etc. without modifying the code to run with Test::Aggregate.

PERFORMANCE
    Your mileage might vary, if forkprove runs your tests faster or not. For
    lightweight modules, we've found that using forkprove doesn't make any
    siginificant difference, due to the fact that fork overhead nullifies
    the benefit of preloading modules.

    On the other hand, test suite with Moose, Catalyst and Dist::Zilla seems
    to run 80-100% faster with forkprove and "-jN" option.

AUTHOR
    Tatsuhiko Miyagawa

SEE ALSO
    prove, TAP::Parser

POD ERRORS
    Hey! The above document had some coding errors, which are explained
    below:

    Around line 49:
        You forgot a '=back' before '=head1'

Something went wrong with that request. Please try again.