Perl 5 version 32.0 documentation



App::Prove::State - State storage for the prove command.


Version 3.42


The prove command supports a --state option that instructs it to store persistent state across runs. This module implements that state and the operations that may be performed on it.


  1. # Re-run failed tests
  2. $ prove --state=failed,save -rbv


Class Methods


Accepts a hashref with the following key/value pairs:

  • store

    The filename of the data store holding the data that App::Prove::State reads.

  • extensions (optional)

    The test name extensions. Defaults to .t.

  • result_class (optional)

    The name of the result_class . Defaults to App::Prove::State::Result .


Getter/setter for the name of the class used for tracking test results. This class should either subclass from App::Prove::State::Result or provide an identical interface.


Get or set the list of extensions that files must have in order to be considered tests. Defaults to ['.t'].


Get the results of the last test run. Returns a result_class() instance.


Save the test results. Should be called after all tests have run.

Instance Methods


  1. $self->apply_switch('failed,save');

Apply a list of switch options to the state, updating the internal object state as a result. Nothing is returned.

Diagnostics: - "Illegal state option: %s"

  • last

    Run in the same order as last time

  • failed

    Run only the failed tests from last time

  • passed

    Run only the passed tests from last time

  • all

    Run all tests in normal order

  • hot

    Run the tests that most recently failed first

  • todo

    Run the tests ordered by number of todos.

  • slow

    Run the tests in slowest to fastest order.

  • fast

    Run test tests in fastest to slowest order.

  • new

    Run the tests in newest to oldest order.

  • old

    Run the tests in oldest to newest order.

  • save

    Save the state on exit.


Given a list of args get the names of tests that should run


Store the results of a test.


Write the state to a file.


Load the state from a file