Apache::TestMB Released!
As I mentioned last week, I’ve been working on a subclass of Module::Build
that supports testing with Apache::Test
. Today, Geoff announced the
release of Apache::Test
1.12. This release includes the new
Module::Build
subclass, Apache::TestMB
. Now anyone using Apache::Test
to
test their module can convert the build system to Module::Build
.
To set an example, I’ve just released MasonX::Interp::WithCallbacks
using
the new build module. The conversion was simple; in fact, I think that
Apache::TestMB
is easier to use than Apache::TestMM
(which integrates
Apache::Test
with ExtUtils::MakeMaker
). My Makefile.PL had looked like
this:
#!perl -w
use strict;
use ExtUtils::MakeMaker;
use File::Spec::Functions qw(catfile catdir);
use constant HAS_APACHE_TEST => eval {require Apache::Test};
# Set up the test suite.
if (HAS_APACHE_TEST) {
require Apache::TestMM;
require Apache::TestRunPerl;
Apache::TestMM->import(qw(test clean));
Apache::TestMM::filter_args();
Apache::TestRunPerl->generate_script();
} else {
print "Skipping Apache test setup.\n";
}
my $clean = join ' ', map { catfile('t', $_) }
qw(mason TEST logs);
WriteMakefile(
NAME => 'MasonX::Interp::WithCallbacks',
VERSION_FROM => 'lib/MasonX/Interp/WithCallbacks.pm',
PREREQ_PM => { 'HTML::Mason' => '1.23',
'Test::Simple' => '0.17',
'Class::Container' => '0.09',
'Params::CallbackRequest' => '1.11',
},
clean => { FILES => $clean },
($] >= 5.005 ? ## Add these new keywords supported since 5.005
(ABSTRACT_FROM => 'lib/MasonX/Interp/WithCallbacks.pm',
AUTHOR => 'David Wheeler <david@kineticode.com>') : ()),
);
The new Build.PL simplifies things quite a bit. It looks like this:
use Module::Build;
my $build_pkg = eval { require Apache::TestMB }
? 'Apache::TestMB' : 'Module::Build';
$build_pkg->new(
module_name => 'MasonX::Interp::WithCallbacks',
license => 'perl',
requires => { 'HTML::Mason' => '1.23',
'Test::Simple' => '0.17',
'Class::Container' => '0.09',
'Params::CallbackRequest' => '1.11'
},
build_requires => { Test::Simple => '0.17' },
create_makefile_pl => 'passthrough',
add_to_cleanup => ['t/mason'],
)->create_build_script;
Much nicer, eh?
Looking for the comments? Try the old layout.