# App::Prove::State::Result - phpMan

## NAME
    [App::Prove::State::Result] - Individual test suite results.

## VERSION
    Version 3.43

## DESCRIPTION
    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.

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

## METHODS
  Class Methods
   "new"
        my $result = [App::Prove::State::Result]->new({
            generation => $generation,
            tests      => \%tests,
        });

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

  "state_version"
    Returns the current version of state storage.

  "test_class"
    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.

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

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

   "tests"
    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',
      }

   "test"
     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.

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

   "remove"
     $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.

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

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

