Как мне изменить каталог Module::Build / Test::More по умолчанию с "lib" на что-то другое?

Используя архитектуру каталогов и файлов в этом модуле "Тестирование модулей на Perl" и "Охват кода" (кстати, это было ОЧЕНЬ полезно), я скопировал файлы, на которых будут выполняться модульные тесты и покрытие кода, в новый каталог "lib", и он работает следующим образом. Шарм!

Тем не менее, мне нужен модуль, чтобы посмотреть в существующей директории "scripts"..

Япролистал документацию Module::Build на CPAN, но все еще получаю сообщение Не могу найти файл lib/processBuildSubs.pm

Вот что у меня пока...

use strict;
use Module::Build;


my $newBuild = Module::Build->new(

    module_name         => 'processBuildSubs',
    license             => 'perl',
    dist_abstract       => 'processBuildSubs Unit Test',
    dist_author         => 'me@myemail.com',
    build_requires      => {
           'Test::More' => '0.10',
    },

);

$newBuild->create_build_script();

ОБНОВИТЬ!

Также только что попробовал это..

my $newBuild = Module::Build->new(

    module_name     => 'scripts::processBuildSubs',
    pm_files        => {'processBuildSubs.pm' => 'lib/processBuildSubs.pm'},
    license         => 'perl',
    dist_abstract       => 'processBuildSubs Unit Test',
    dist_author         => 'me@myemail.com',
    build_requires  => {
        'Test::More' => '0.10',
    },

);

Некоторый прогресс, я думаю, он выглядит в lib / scripts /.., хотя все еще не совсем то, что мне нужно, хотя..

ОБНОВИТЬ!

Что-то вроде хакерской работы, но пока она помогает мне..

#!/bin/bash

mv scripts lib
perl ./Build.pl
perl ./Build testcover
mv lib scripts
firefox cover_db/coverage.html

Я запускаю этот скрипт, чтобы изменить имя каталога, запустить тесты / покрытие и изменить имя каталога обратно... У кого-нибудь есть идеи получше?

1 ответ

Решение

В настоящее время вы не можете сказать Module::Build использовать другой каталог, кроме "lib" (я посмотрел исходный код для Module::Build и lib кажется довольно жестко закодированным.)

Вы можете создать символическую ссылку:

ln -s scripts lib

И это позволит Module::Build найти его.

Другие вопросы по тегам