NAME Test2::Harness - Test2 based test harness. DESCRIPTION This is an alternative to Test::Harness. See the App::Yath module for more details. Try running the yath command inside a perl repository. $ yath For help: $ yath --help USING THE HARNESS IN YOUR DISTRIBUTION If you want to have your tests run via Test2::Harness instead of Test::Harness you need to do two things: Move your test files You need to put any tests that you want to run under Test2::Harness into a directory other than t/. A good name to pick is t2/, as it will not be picked up by Test::Harness automatically. Add a test.pl script You need a script that loads Test2::Harness and tells it to run the tests. You can find this script in examples/test.pl in this distribution. The example test.pl is listed here for convenience: #!/usr/bin/env perl use strict; use warnings; # Change this to list the directories where tests can be found. This should not # include the directory where this file lives. my @DIRS = ('./t2'); # PRELOADS GO HERE # Example: # use Moose; ########################################### # Do not change anything below this point # ########################################### use App::Yath; # After fork, Yath will break out of this block so that the test file being run # in the new process has as small a stack as possible. It would be awful to # have a bunch of Test2::Harness frames on all stack traces. T2_DO_FILE: { # Add eveything in @INC via -I so that using `perl -Idir this_file` will # pass the include dirs on to any tests that decline to accept the preload. my $yath = App::Yath->new(args => [(map { "-I$_" } @INC), '--exclude=use_harness', @DIRS, @ARGV]); # This is where we turn control over to yath. my $exit = $yath->run(); exit($exit); } # At this point we are in a child process and need to run a test file specified # in this package var. my $file = $Test2::Harness::Runner::DO_FILE or die "No file to run!"; # Test files do not always return a true value, so we cannot use require. We # also cannot trust $! $@ = ''; do $file; die $@ if $@; exit 0; Most (if not all) module installation tools will find test.pl and run it, using the exit value to determine pass/fail. Note: Since Test2::Harness does not output the traditional TAP, you cannot use this example as a .t file in t/. SOURCE The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/. MAINTAINERS Chad Granum AUTHORS Chad Granum COPYRIGHT Copyright 2016 Chad Granum . 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/