App::Prove::State::Result − Individual test suite results.


Version 3.42


The "prove" command supports a "−−state" option that instructs it to store persistent state across runs. This module encapsulates the results for a single test suite run.


# Re−run failed tests
$ prove −−state=failed,save −rbv


Class Methods

my $result = App::Prove::State::Result−>new({
generation => $generation,
tests => \%tests,

Returns a new "App::Prove::State::Result" instance.

Returns the current version of state storage.

Returns the name of the class used for tracking individual tests. This class should either subclass from "App::Prove::State::Result::Test" or provide an identical interface.


Getter/setter for the "generation" of the test suite run. The first generation is 1 (one) and subsequent generations are 2, 3, etc.


Getter/setter for the time of the test suite run.


Returns the tests for a given generation. This is a hashref or a hash, depending on context called. The keys to the hash are the individual test names and the value is a hashref with various interesting values. Each k/v pair might resemble something like this:

't/foo.t' => {
elapsed => '0.0428488254547119',
gen => '7',
last_pass_time => '1219328376.07815',
last_result => '0',
last_run_time => '1219328376.07815',
last_todo => '0',
mtime => '1191708862',
seq => '192',
total_passes => '6',


my $test = $result−>test('t/customer/create.t');

Returns an individual "App::Prove::State::Result::Test" instance for the given test name (usually the filename). Will return a new "App::Prove::State::Result::Test" instance if the name is not found.


Returns an list of test names, sorted by run order.


$result−>remove($test_name); # remove the test
my $test = $result−>test($test_name); # fatal error

Removes a given test from results. This is a no-op if the test name is not found.


Returns the number of tests for a given test suite result.


Returns a hashref of raw results, suitable for serialization by YAML.