Thread Test::Prereq und bedingtes Laden von Modulen (3 answers)
Opened by Kuerbis at 2014-01-30 14:27

Kuerbis
 2014-01-30 14:27
#173309 #173309
User since
2011-03-20
943 Artikel
BenutzerIn
[default_avatar]
Hallo!

Wenn ich ein Module habe, bei dem es je nach OS verschiedene Abhängigkeiten gibt, gibt CPAN:Test::Prereq immer Fehlermeldungen aus.
Kommt CPAN:Test::Prereq mit dem bedingten Laden nicht klar oder gibt es eine alternative Schreibweise für die Makefile.PL Datei mit der CPAN:Test::Prereq funktioniert?

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use warnings;
use strict;
use ExtUtils::MakeMaker;


my %os_specific;
if ( $^O eq 'MSWin32' ) {
    %os_specific = (
        'Term::Size::Win32' => 0,
    );
}
else {
    %os_specific = (
        'Term::ReadKey'     => 0,
    );
}

WriteMakefile(
    NAME             => 'Home::ABC',
    VERSION_FROM     => 'lib/Home/ABC.pm',
    BUILD_REQUIRES   => {
        'Test::More'      => 0,
        'Test::Prereq'    => 0,
    },
    PREREQ_PM => {
        'warnings'        => 0,
        'strict'          => 0,
        %os_specific,
    },
    clean => {
        FILES => 'Home-ABC-*',
    },
);



Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package Home::ABC;
use strict;
use warnings;
our $VERSION = '0.001';

BEGIN {
    if ( $^O eq 'MSWin32' ) {
        require Term::Size::Win32;
        Term::Size::Win32::->import( 'chars' );
    }
    else {
        require Term::ReadKey;
        Term::ReadKey::->import( 'GetTerminalSize' );
    }
}

1;


make test:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cp lib/Home/ABC.pm blib/lib/Home/ABC.pm
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/prereqs.t .. 1/1
# Failed test 'Found some modules that didn't show up in PREREQ_PM or *_REQUIRES
# '
# at /usr/local/lib/perl5/site_perl/5.18.1/Test/Prereq.pm line 294.
# Term::Size::Win32
# Looks like you failed 1 test of 1.
t/prereqs.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests

Test Summary Report
-------------------
t/prereqs.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Files=1, Tests=1, 2 wallclock secs ( 0.02 usr 0.00 sys + 1.89 cusr 0.03 csys = 1.94 CPU)
Result: FAIL
Failed 1/1 test programs. 1/1 subtests failed.
make: *** [test_dynamic] Fehler 1

View full thread Test::Prereq und bedingtes Laden von Modulen