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::TestMBis 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?













Comments & Trackbacks
Discussion is now closed.