---
name: "Wiki::Toolkit::TestLib"
section: "3pm"
platform: "linux"
package: "libwiki-toolkit-perl"
version: "0.86-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Wiki::Toolkit::TestLib"
---

# Wiki::Toolkit::TestLib(3pm)

Utilities for writing Wiki::Toolkit tests.

## NAME

Wiki::Toolkit::TestLib - Utilities for writing Wiki::Toolkit tests.

## DESCRIPTION

When 'perl Makefile.PL' is run on a Wiki::Toolkit distribution, information will be gathered about test databases etc that can be used for running tests. Wiki::Toolkit::TestLib gives convenient access to this information.

## SYNOPSIS

```
  use strict;
  use Wiki::Toolkit::TestLib;
  use Test::More;
  my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker;
  plan tests => ( $iterator->number * 6 );
  while ( my $wiki = $iterator->new_wiki ) {
      # put some test data in
      # run six tests
  }
```

Each time you call `"->next"` on your iterator, you will get a fresh blank wiki object. The iterator will iterate over all configured search and storage backends.

The Lucy search backend will be configured to index three metadata fields: address, category, and locale.

## METHODS

- **new\_wiki\_maker**

  ```
    my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker;
  ```

- **number**

  ```
    use Test::More;
    my $iterator = Wiki::Toolkit::TestLib->new_wiki_maker;
    plan tests => ( $iterator->number * 6 );
  ```

  Returns the number of new wikis that your iterator will be able to give you.

- **new\_wiki**

  ```
    my $wiki = $iterator->new_wiki;
  ```

  Returns a fresh blank wiki object, or false if you've used up all the configured search and storage backends.

- **configured\_databases**

  ```
    my @configured_databases = $iterator->configured_databases;
    Returns the @configured_databases array detailing configured test databases.
    Useful for very low-level testing only.
  ```

## SEE ALSO

Wiki::Toolkit

## AUTHOR

Kake Pugh (kake@earth.li).

## COPYRIGHT

```
     Copyright (C) 2003-2004 Kake Pugh.  All Rights Reserved.
     Copyright (C) 2008 the Wiki::Toolkit team. All Rights Reserved.
```

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

## CAVEATS

If you have the Search::InvertedIndex backend configured (see Wiki::Toolkit::Search::SII) then your tests will raise warnings like

```
  (in cleanup) Search::InvertedIndex::DB::Mysql::lock() -
    testdb is not open. Can't lock.
  at /usr/local/share/perl/5.6.1/Search/InvertedIndex.pm line 1348
```

or

```
  (in cleanup) Can't call method "sync" on an undefined value
    at /usr/local/share/perl/5.6.1/Tie/DB_File/SplitHash.pm line 331
    during global destruction.
```

in unexpected places. I don't know whether this is a bug in me or in Search::InvertedIndex.
