---
name: "App::Prove::State::Result"
section: "3pm"
platform: "linux"
package: "libtest-harness-perl"
version: "3.50-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/App::Prove::State::Result/3pm"
---

# App::Prove::State::Result(3pm)

Individual test suite results.

## NAME

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

## VERSION

Version 3.50

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