---
name: "Test::Harness::Results"
section: "3pm"
platform: "linux"
package: "libtest-harness-perl"
version: "2.64-1"
release: "Debian 4.0 (Etch)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Harness::Results/3pm"
---

# Test::Harness::Results(3pm)

Test::Harness::Results - object for tracking results from a single test file One Test::Harness::Results object represents the results from one test file getting analyzed.\
 *new()*

```
    my $results = new Test::Harness::Results;
```

Create a test point object.  Typically, however, you'll not create one yourself, but access a Results object returned to you by Test::Harness::Results. The following data points are defined:

```
  passing           true if the whole test is considered a pass
                    (or skipped), false if its a failure
```

```
  exit              the exit code of the test run, if from a file
  wait              the wait code of the test run, if from a file
```

```
  max               total tests which should have been run
  seen              total tests actually seen
  skip_all          if the whole test was skipped, this will
                      contain the reason.
```

```
  ok                number of tests which passed
                      (including todo and skips)
```

```
  todo              number of todo tests seen
  bonus             number of todo tests which
                      unexpectedly passed
```

```
  skip              number of tests skipped
```

So a successful test should have max == seen == ok. There is one final item, the details.

```
  details           an array ref reporting the result of
                    each test looks like this:
```

```
    $results{details}[$test_num - 1] =
            { ok          => is the test considered ok?
              actual_ok   => did it literally say 'ok'?
              name        => name of the test (if any)
              diagnostics => test diagnostics (if any)
              type        => 'skip' or 'todo' (if any)
              reason      => reason for the above (if any)
            };
```

Element 0 of the details is test #1.  I tried it with element 1 being #1 and 0 being empty, this is less awkward. Each of the following fields has a getter and setter method.
