Schrift
[thread]6604[/thread]

Module auf CPAN hochladen: hab's noch nie gemacht (Seite 2)

Leser: 5


<< |< 1 2 3 4 5 ... 7 >| >> 64 Einträge, 7 Seiten
steffenw
 2004-12-31 12:09
#50472 #50472
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,31.12.2004, 10:40]wenns TieHash noch nicht gibt, kannst du weiter machen :)[/quote]
Nee, gibt's noch nicht. Das einzige, was es da mit Tie gibt ist "Locale::Maketext::Lexicon::Tie".
$SIG{USER} = sub {love 'Perl' or die};
pq
 2004-12-31 13:05
#50473 #50473
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
die datei Modulname.t ist dein test-script! nicht löschen.
du kannst dich ja auch zur sicherheit an ein paar anderen
cpan-modulen orientieren. manche von denen haben eine ganze reihe von *.t dateien.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2005-01-03 17:13
#50474 #50474
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Soll dieses Modulname.t dann ein normales Perlscript sein, das irgendwas testet oder ist das ein besonderes Format?
Wird das bei der Installation aufgerufen? Wenn ja muss ja bestimmt bei Erfolg / Mißerfolg irgendein Rückgabewert ausgegeben werden.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
steffenw
 2005-01-03 17:29
#50475 #50475
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das mit der .t-Datei habe ich mittlerweile begriffen. Es gibt da ein
use Test::More;
sagst mit der sub plan, wie viele Tests es gibt. Du mußt letztenlich die Sub ok aufrufen, der Du true in korrekten Fall übergibst. Die Anzahl der ok-Aufrufe ist die Anzahl der Tests.
$SIG{USER} = sub {love 'Perl' or die};
renee
 2005-01-03 17:43
#50476 #50476
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Man kann sich ja einfach mal ein .t-Skript von einem anderen Modul anschauen...

Auszug aus einem .t-Skript von HTML::Tree:
Code: (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
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('' => ' ');
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
steffenw
 2005-01-03 20:46
#50477 #50477
User since
2003-08-15
692 Artikel
BenutzerIn
[Homepage] [default_avatar]
use Test; ist alt. Wenn man h2xs benutzt, um seinen Modulrahmen zu bilden, dann heißt das Ding jetzt use Test::More;.\n\n

<!--EDIT|steffenw|1104778132-->
$SIG{USER} = sub {love 'Perl' or die};
Strat
 2005-01-04 01:27
#50478 #50478
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
ich poste mal schnell ein paar zeilen aus meinem fortgeschrittenenkurs:
Quote
Wenn 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.

Code: (dl )
1
2
3
4
  'PREREQ_PM' => {    Modulname1 => 0.01,
Modulname2 => 1.2,
Modulname3 => 0.41
},
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
pq
 2005-01-04 13:07
#50479 #50479
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
auch als lektüre zu empfehlen:
http://www.perlmonks.org/?node_id=418891
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
esskar
 2005-01-04 13:35
#50480 #50480
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Makefile.pl (beispiel):
Code: (dl )
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'
},
) : ()
),
);


make_ppd.pl (macht ppd package und cpan zeugs)
Code: (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
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';


Tar und Gzip für Windows hab ich hier hingelegt!
Crian
 2005-01-04 15:51
#50481 #50481
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Muss man denn dan für jedes einzelne Modul, was man hochladen will, diesen Aufstand verrichten und für jedes ein solches Verzeichnis einrichten?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 4 5 ... 7 >| >> 64 Einträge, 7 Seiten



View all threads created 2004-12-30 17:16.