---
name: "Test2::Bundle::More"
section: "3p"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/Test2::Bundle::More"
---

# Test2::Bundle::More(3p)

ALMOST a drop-in replacement for Test::More.

## NAME

Test2::Bundle::More - ALMOST a drop-in replacement for Test::More.

## DESCRIPTION

This bundle is intended to be a (mostly) drop-in replacement for Test::More. See "KEY DIFFERENCES FROM Test::More" for details.

## SYNOPSIS

```
    use Test2::Bundle::More;
    ok(1, "pass");
    ...
    done_testing;
```

## PLUGINS

This loads Test2::Plugin::ExitSummary.

## TOOLS

These are from Test2::Tools::Basic. See Test2::Tools::Basic for details.

- ok($bool, $name)

  - pass($name)

  - fail($name)

  - skip($why, $count)

  - $todo = todo($why)

  - diag($message)

  - note($message)

  - plan($count)

  - skip\_all($why)

  - **done\_testing()**

  - BAIL\_OUT($why)

  These are from Test2::Tools::ClassicCompare. See Test2::Tools::ClassicCompare for details.

- is($got, $want, $name)

  - isnt($got, $donotwant, $name)

  - like($got, qr/match/, $name)

  - unlike($got, qr/mismatch/, $name)

  - is\_deeply($got, $want, "Deep compare")

  - cmp\_ok($got, $op, $want, $name)

  These are from Test2::Tools::Class. See Test2::Tools::Class for details.

- isa\_ok($thing, @classes)

  - can\_ok($thing, @subs)

  This is from Test2::Tools::Subtest. It is called `subtest_streamed()` in that package.

- subtest $name =\> sub { ... }

  ## KEY DIFFERENCES FROM Test::More

- You cannot plan at import.

  THIS WILL **NOT** WORK:

  ```
      use Test2::Bundle::More tests => 5;
  ```

  Instead you must plan in a separate statement:

  ```
      use Test2::Bundle::More;
      plan 5;
  ```

- You have three subs imported for use in planning

  Use `plan($count)`, `skip_all($reason)`, or `done_testing()` for your planning.

- isa\_ok accepts different arguments

  `"isa_ok"` in Test::More was:

  ```
      isa_ok($thing, $isa, $alt_thing_name);
  ```

  This was very inconsistent with tools like `"can_ok($thing, @subs)"`.

  In Test2::Bundle::More, `isa_ok()` takes a `$thing` and a list of `@isa`.

  ```
      isa_ok($thing, $class1, $class2, ...);
  ```

### THESE FUNCTIONS AND VARIABLES HAVE BEEN REMOVED

- $TODO

  See `todo()`.

- **use\_ok()**

  - **require\_ok()**

  These are not necessary. Use `"use"` and `"require"` directly. If there is an error loading the module the test will catch the error and fail.

- **todo\_skip()**

  Not necessary.

- **eq\_array()**

  - **eq\_hash()**

  - **eq\_set()**

  Discouraged in Test::More.

- **explain()**

  This started a fight between Test developers, who may now each write their own implementations in Test2. (See explain in Test::Most vs Test::More. Hint: Test::Most wrote it first, then Test::More added it, but broke compatibility).

- **new\_ok()**

  Not necessary.

## SOURCE

The source code repository for Test2-Suite can be found at *https://github.com/Test-More/test-more/*.

## MAINTAINERS

- Chad Granum \<exodist@cpan.org\>

  ## AUTHORS

- Chad Granum \<exodist@cpan.org\>

  ## COPYRIGHT

Copyright Chad Granum \<exodist@cpan.org\>.

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

See *http://dev.perl.org/licenses/*
