Test::DZil(3) tools for testing Dist::Zilla plugins

VERSION

version 4.300020

DESCRIPTION

Test::DZil provides routines for writing tests for Dist::Zilla plugins.

FUNCTIONS

Builder

Minter

  my $tzil = Builder->from_config(...);

These return class names that subclass Dist::Zilla::Dist::Builder or Dist::Zilla::Dist::Minter, respectively, with the Dist::Zilla::Tester behavior added.

is_filelist

  is_filelist( \@files_we_have, \@files_we_want, $desc );

This test assertion compares two arrayrefs of filenames, taking care of slash normalization and sorting. @files_we_have may also contain objects that do Dist::Zilla::Role::File.

is_yaml

  is_yaml( $yaml_string, $want_struct, $comment );

This test assertion deserializes the given YAML string and does a "cmp_deeply".

is_json

  is_json( $json_string, $want_struct, $comment );

This test assertion deserializes the given JSON string and does a "cmp_deeply".

dist_ini

  my $ini_text = dist_ini(\%root_config, @plugins);

This routine returns a string that could be used to populate a simple dist.ini file. The %root_config gives data for the ``root'' section of the configuration. To provide a line multiple times, provide an arrayref. For example, the root section could read:

  {
    name   => 'Dist-Sample',
    author => [
      'J. Smith <[email protected]>',
      'Q. Smith <[email protected]>',
    ],
  }

The root section is optional.

Plugins can be given in a few ways:

"PluginMoniker"
"[ "PluginMoniker" ]"
These become "[PluginMoniker]"
"[ "PluginMoniker", "PluginName" ]"
This becomes "[PluginMoniker / PluginName]"
"[ "PluginMoniker", { ... } ]"
"[ "PluginMoniker", "PluginName", { ... } ]"
These use the given hashref as the parameters inside the section, with the same semantics as the root section.

simple_ini

This behaves exactly like "dist_ini", 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:

  {
    name     => 'DZT-Sample',
    abstract => 'Sample DZ Dist',
    version  => '0.001',
    author   => 'E. Xavier Ample <[email protected]>',
    license  => 'Perl_5',
    copyright_holder => 'E. Xavier Ample',
  }

AUTHOR

Ricardo SIGNES <[email protected]>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by Ricardo SIGNES.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.