.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Test::DZil 3pm" .TH Test::DZil 3pm "2020-11-04" "perl v5.30.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::DZil \- tools for testing Dist::Zilla plugins .SH "VERSION" .IX Header "VERSION" version 6.017 .SH "DESCRIPTION" .IX Header "DESCRIPTION" Test::DZil provides routines for writing tests for Dist::Zilla plugins. .SH "FUNCTIONS" .IX Header "FUNCTIONS" .SS "Builder" .IX Subsection "Builder" .SS "Minter" .IX Subsection "Minter" .Vb 1 \& my $tzil = Builder\->from_config(...); .Ve .PP These return class names that subclass Dist::Zilla::Dist::Builder or Dist::Zilla::Dist::Minter, respectively, with the Dist::Zilla::Tester behavior added. .SS "is_filelist" .IX Subsection "is_filelist" .Vb 1 \& is_filelist( \e@files_we_have, \e@files_we_want, $desc ); .Ve .PP This test assertion compares two arrayrefs of filenames, taking care of slash normalization and sorting. \f(CW@files_we_have\fR may also contain objects that do Dist::Zilla::Role::File. .SS "is_yaml" .IX Subsection "is_yaml" .Vb 1 \& is_yaml( $yaml_string, $want_struct, $comment ); .Ve .PP This test assertion deserializes the given \s-1YAML\s0 string and does a \&\f(CW\*(C`cmp_deeply\*(C'\fR. .SS "is_json" .IX Subsection "is_json" .Vb 1 \& is_json( $json_string, $want_struct, $comment ); .Ve .PP This test assertion deserializes the given \s-1JSON\s0 string and does a \&\f(CW\*(C`cmp_deeply\*(C'\fR. .SS "dist_ini" .IX Subsection "dist_ini" .Vb 1 \& my $ini_text = dist_ini(\e%root_config, @plugins); .Ve .PP This routine returns a string that could be used to populate a simple \&\fIdist.ini\fR file. The \f(CW%root_config\fR gives data for the \*(L"root\*(R" section of the configuration. To provide a line multiple times, provide an arrayref. For example, the root section could read: .PP .Vb 7 \& { \& name => \*(AqDist\-Sample\*(Aq, \& author => [ \& \*(AqJ. Smith \*(Aq, \& \*(AqQ. Smith \*(Aq, \& ], \& } .Ve .PP The root section is optional. .PP Plugins can be given in a few ways: .ie n .IP """PluginMoniker""" 4 .el .IP "\f(CW``PluginMoniker''\fR" 4 .IX Item """PluginMoniker""" .PD 0 .ie n .IP """[ ""PluginMoniker"" ]""" 4 .el .IP "\f(CW[ ``PluginMoniker'' ]\fR" 4 .IX Item "[ ""PluginMoniker"" ]" .PD These become \f(CW\*(C`[PluginMoniker]\*(C'\fR .ie n .IP """[ ""PluginMoniker"", ""PluginName"" ]""" 4 .el .IP "\f(CW[ ``PluginMoniker'', ``PluginName'' ]\fR" 4 .IX Item "[ ""PluginMoniker"", ""PluginName"" ]" This becomes \f(CW\*(C`[PluginMoniker / PluginName]\*(C'\fR .ie n .IP """[ ""PluginMoniker"", { ... } ]""" 4 .el .IP "\f(CW[ ``PluginMoniker'', { ... } ]\fR" 4 .IX Item "[ ""PluginMoniker"", { ... } ]" .PD 0 .ie n .IP """[ ""PluginMoniker"", ""PluginName"", { ... } ]""" 4 .el .IP "\f(CW[ ``PluginMoniker'', ``PluginName'', { ... } ]\fR" 4 .IX Item "[ ""PluginMoniker"", ""PluginName"", { ... } ]" .PD These use the given hashref as the parameters inside the section, with the same semantics as the root section. .SS "simple_ini" .IX Subsection "simple_ini" This behaves exactly like \f(CW\*(C`dist_ini\*(C'\fR, but it merges any given root config into a starter config, which means that you can often skip any explicit root config. The starter config may change slightly over time, but is something like this: .PP .Vb 8 \& { \& name => \*(AqDZT\-Sample\*(Aq, \& abstract => \*(AqSample DZ Dist\*(Aq, \& version => \*(Aq0.001\*(Aq, \& author => \*(AqE. Xavier Ample \*(Aq, \& license => \*(AqPerl_5\*(Aq, \& copyright_holder => \*(AqE. Xavier Ample\*(Aq, \& } .Ve .SH "AUTHOR" .IX Header "AUTHOR" Ricardo \s-1SIGNES\s0 😏 .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2020 by Ricardo \s-1SIGNES.\s0 .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.