Leser: 5
|< 1 2 3 4 5 ... 7 >| | 64 Einträge, 7 Seiten |
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
34
35
36
37
38
39
40
41
42
43
44
45
# -*-Perl-*-
# Time-stamp: "2003-09-15 01:45:14 ADT"
use strict;
use Test;
my $DEBUG = 2;
BEGIN { plan tests => 40 }
use HTML::TreeBuilder;
print "#Using HTML::TreeBuilder version v$HTML::TreeBuilder::VERSION\n";
print "#Using HTML::Element version v$HTML::Element::VERSION\n";
print "#Using HTML::Parser version v", $HTML::Parser::VERSION || "?", "\n";
print "#Using HTML::Entities version v", $HTML::Entities::VERSION || "?", "\n";
print "#Using HTML::Tagset version v", $HTML::Tagset::VERSION || "?", "\n";
print "# Running under perl version $] for $^O",
(chr(65) eq 'A') ? "\n" : " in a non-ASCII world\n";
print "# Win32::BuildNumber ", &Win32::BuildNumber(), "\n"
if defined(&Win32::BuildNumber) and defined &Win32::BuildNumber();
print "# MacPerl verison $MacPerl::Version\n"
if defined $MacPerl::Version;
printf
"# Current time local: %s\n# Current time GMT: %s\n",
scalar(localtime($^T)), scalar(gmtime($^T));
ok 1;
{
my $tree = HTML::TreeBuilder->new;
$tree->parse('<title>foo</title><p>I like pie');
$tree->eof;
ok($tree->as_XML,
"<html><head><title>foo</title></head><body>"
."<p>I like pie</p></body></html>\n"
);
$tree->delete;
}
ok !same('x' => 'y', 1);
ok !same('<p>' => 'y', 1);
ok same('' => '');
ok same('' => ' ');
ok same('' => ' ');
QuoteWenn das Modul alle Funktionalität hat, sollte man noch einen oder mehrere Tests dafür in der Datei t/1.t angeben. Für weitere Tests erstellt man einfach weitere Dateien wie 2.t, 3.t, ... Beim Testen sollte man auch darauf achten, daß möglichst alles getestet wird, daß auch Fehlverhalten getestet wird, und auch auf das Betriebssystem geachtet wird (es macht z.B. wenig Sinn, wenn die Tests eines Modul, das verschiedene Windows-Erweiterungen benützt und somit nur unter Windows laufen kann, unter Linux fehlerfrei laufen, wenn das Modul gar nicht laufen kann). Hilfreiche Module für Tests sind: Test::Harness, Test::Simple, Test::More.
Wenn das Modul auf anderen Modulen basiert, die keine Standardmodule sind (z.B. von CPAN; Standardmodule kann man daran erkennen, dass es im lib-Verzeichnis (nichts mit /site/.../lib/) liegt) und/oder die mindestens ab einer bestimmten Version vorliegen müssen, sollte man die abhängigen Module in der Datei Makefile.PL im Punkt 'PREREQ_PM' angeben.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
'NAME' => 'Mail::Transfer',
'VERSION_FROM' => 'Transfer.pm', # finds $VERSION
'PREREQ_PM' => {}, # e.g., Module::Name => 1.1
($] >= 5.005 ? ## Add these new keywords supported since 5.005
('ABSTRACT_FROM' => 'Transfer.pm', # retrieve abstract from module
'AUTHOR' => 'Sascha Kiefer <sk@intertivity.com>',
'INSTALLSITELIB' => undef,
'dist' => {
'COMPRESS' => 'gzip -9f',
'SUFFIX' => 'gz'
},
) : ()
),
);
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#make_ppd.pl
use File::DosGlob qw(glob);
use Win32::FileOp;
use strict;
my $make='nmake.exe';
END { print "\nDONE\n"; };
system('perl Makefile.PL');
system($make) and die "Failed to make!\n";
system($make, 'dist'); # this creates the ordinary distribution
# I need the archive to find the version number!
# If you comment this out, always copy the archive to current directory.
# this part of code finds the latest distribution, I don't have time to
# explore how to find the version number
my @archives = sort (grep {!/-PPM\.tar\.gz$/i} <*.tar.gz>);
my $archive = $archives[-1];
my ($name, $module, $file);
($name = $archive) =~ s/\.tar\.gz$//;
($module = $name) =~ s/-[\d.]+$//;
($file = $module) =~ s/^.*-(.*?)$/$1/;
$module =~ s/-/\\/g;
print "Module name : $file\n";
print "Newest archive is $archive\n";
# system($make, 'ppd');
# you may do something like
system($make, 'ppd', "BINARY_LOCATION=$name-PPM.tar.gz");
# if you do not apply my path to ExtUtils\MM_Unix.pm
print (qq{pod2html.bat "-header" "-htmlroot=." "$file.pm" "-outfile=$file.html"\n});
system(qq{pod2html.bat "-header" "-htmlroot=." "$file.pm" "-outfile=$file.html"});
#mkdir 'blib/html'; # not necessary
Move "$file.html" => "blib/html/lib/$module.html";
system("tar cvf $name-PPM.tar blib");
# print "gzip --best $name-PPM.tar";
system("gzip --best $name-PPM.tar");
Delete 'blib', 'pod2html-dircache', 'pod2html-itemcache', 'pm_to_blib';
|< 1 2 3 4 5 ... 7 >| | 64 Einträge, 7 Seiten |