---
name: "Test::Assertions::TestScript"
section: "3pm"
platform: "linux"
package: "libtest-assertions-perl"
version: "1.054-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Test::Assertions::TestScript"
---

# Test::Assertions::TestScript(3pm)

Base for test scripts

## NAME

Test::Assertions::TestScript - Base for test scripts

## SYNOPSIS

```
        use Test::Assertions::TestScript;
        use Module::To::Test qw( frobnicate );

        ASSERT(frobnicate(),"Frobnicate returns true");
```

## DESCRIPTION

Test::Assertions::TestScript provides a base for writing test scripts. It performs some common actions such as setting up the `@INC` path and parsing command-line options, specifically:

- •

  The lib and t/lib directories are added to `@INC`.

- •

  The current directory is changed to the directory the script is in.

- •

  Test script command-line options are parsed. (See "COMMAND-LINE OPTIONS")

- •

  The test set of functions from Test::Assertions are imported into your test script.

Test::Assertions::TestScript makes certain assumptions about the filesystem layout of your project:

- •

  Modules that you are testing are in the lib directory of your project.

- •

  Test scripts are in the t directory.

- •

  There may also be a t/lib directory for any modules written for the test process.

Test::Assertions::TestScript should be `"use"`d **before** any modules that you intend to test.

## OPTIONS

Options can be supplied to the import function. These should be placed after the `"use"` or `"import"`. For example

```
        use Test::Assertions::TestScript( tests => 10, options => { 'b', \$opt_b })
```

The following options are defined:

- tests

  The number of tests to pass to `"plan tests"` from Test::Assertions.  For example to tell Test::Assertions::TestScript that the script contains 42 tests:

  ```
    use Test::Assertions::TestScript tests => 42;
  ```

- options

  A hashref of additional options to capture via Getopt::Long.  The "options" import parameter is passed verbatim to GetOptions, so something along the following lines is required in order to capture the "-b" command line option:

  ```
    use Test::Assertions::TestScript( options => { 'b' => \$opt_b } );
  ```

## COMMAND-LINE OPTIONS

A script based on Test::Assertions::TestScript will detect the following command line options.

- \-t

  Shallow tracing. Traces are `"print"`ed and AutoImport is turned on.

- \-T

  Deep tracing. Traces are `"print"`ed and AutoImport is turned on.

- \--trace-module=MODULE

  Imports tracing into MODULE specifically. Can be specified multiple times.

- \-s

  Save generated output. You will need to write the actual code to do this in your testscript, but you can inspect `$Test::Assertions::TestScript::SAVE_OUTPUT` to see whether this argument was given.

Be aware that all other command line options will be disregarded unless the `"options"` import parameter is used to capture them.

## VERSION

`$Revision:` 1.18 $

## AUTHOR

Colin Robertson \<cpan \_at\_ bbc \_dot\_ co \_dot\_ uk\>

## COPYRIGHT

(c) BBC 2005-6. This program is free software; you can redistribute it and/or modify it under the GNU GPL.

See the file COPYING in this distribution, or http://www.gnu.org/licenses/gpl.txt
