App::Prove::State(3) State storage for the prove command.


Version 3.36


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.


# Re-run failed tests
$ 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



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

    - ``Illegal state option: %s''

Run in the same order as last time
Run only the failed tests from last time
Run only the passed tests from last time
Run all tests in normal order
Run the tests that most recently failed first
Run the tests ordered by number of todos.
Run the tests in slowest to fastest order.
Run test tests in fastest to slowest order.
Run the tests in newest to oldest order.
Run the tests in oldest to newest order.
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