Manual

- Overview
- Tutorials
- FAQs
- History / Changes
- License

Reference

- Language
- Functions
- Operators
- Special Variables
- Pragmas
- Utilities
- Internals
- Platform Specific

Modules

- A • B • C • D • E
- F • G • H • I • L
- M • N • O • P • S
- T • U • X

News / Blogs

- Perl Buzz
- Perl Iron Man
- Perlsphere
- Planet Perl
- TPF news
- Use Perl

See also

- CPAN
- Perl.org
- Perl.com
- Perl 5 Wiki
- Perl Jobs
- Perl Mongers
- Perl Monks

Contact

- Site designed and maintained by Jon Allen (JJ)
- http://perl.jonallen.info

- View the project page and FAQs

# TAP::Parser::Result::Test

Perl 5 version 10.1 documentation
Go to top • Show page index • Download PDF

# TAP::Parser::Result::Test

- NAME
- VERSION
- DESCRIPTION
- OVERRIDDEN METHODS
  - Instance Methods

# NAME

TAP::Parser::Result::Test - Test result token.

# VERSION

Version 3.17

# DESCRIPTION

This is a subclass of TAP::Parser::Result. A token of this class will be returned if a test line is encountered.

     1..1 ok 1 - woo hooo!

# OVERRIDDEN METHODS

This class is the workhorse of the TAP::Parser system. Most TAP lines will be test lines and if `$result->is_test` , then you have a bunch of methods at your disposal.

## Instance Methods

### `ok`

      my $ok = $result->ok;

Returns the literal text of the `ok` or `not ok` status.

### `number`

      my $test_number = $result->number;

Returns the number of the test, even if the original TAP output did not supply that number.

### `description`

      my $description = $result->description;

Returns the description of the test, if any. This is the portion after the test number but before the directive.

### `directive`

      my $directive = $result->directive;

Returns either `TODO` or `SKIP` if either directive was present for a test line.

### `explanation`

      my $explanation = $result->explanation;

If a test had either a `TODO` or `SKIP` directive, this method will return the accompanying explantion, if present.

      not ok 17 - 'Pigs can fly' # TODO not enough acid

For the above line, the explanation is not enough acid.

### `is_ok`

      if ( $result->is_ok ) { ... }

Returns a boolean value indicating whether or not the test passed. Remember that for TODO tests, the test always passes.

If the test is unplanned, this method will always return false. See `is_unplanned` .

### `is_actual_ok`

      if ( $result->is_actual_ok ) { ... }

Returns a boolean value indicating whether or not the test passed, regardless of its TODO status.

### `actual_passed`

Deprecated. Please use `is_actual_ok` instead.

### `todo_passed`

      if ( $test->todo_passed ) {     # test unexpectedly succeeded  }

If this is a TODO test and an 'ok' line, this method returns true. Otherwise, it will always return false (regardless of passing status on non-todo tests).

This is used to track which tests unexpectedly succeeded.

### `todo_failed`

      # deprecated in favor of 'todo_passed'.  This method was horribly misnamed.

This was a badly misnamed method. It indicates which TODO tests unexpectedly succeeded. Will now issue a warning and call `todo_passed` .

### `has_skip`

      if ( $result->has_skip ) { ... }

Returns a boolean value indicating whether or not this test has a SKIP directive.

### `has_todo`

      if ( $result->has_todo ) { ... }

Returns a boolean value indicating whether or not this test has a TODO directive.

### `as_string`

      print $result->as_string;

This method prints the test as a string. It will probably be similar, but not necessarily identical, to the original test line. Directives are capitalized, some whitespace may be trimmed and a test number will be added if it was not present in the original line. If you need the original text of the test line, use the `raw` method.

### `is_unplanned`

      if ( $test->is_unplanned ) { ... }  $test->is_unplanned(1);

If a test number is greater than the number of planned tests, this method will return true. Unplanned tests will always return false for `is_ok` , regardless of whether or not the test `has_todo` .

Note that if tests have a trailing plan, it is not possible to set this property for unplanned tests as we do not know it's unplanned until the plan is reached:

      print <<'END';  ok 1  ok 2  1..1  END

Page index

- NAME
- VERSION
- DESCRIPTION
- OVERRIDDEN METHODS
  - Instance Methods

Recently read

Tools

- Preferences