The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

App::Prove::Plugin::TestArgs - A prove plugin to configure test aliases and arguments

SYNOPSIS

  # t/config.yml
  ---
  t/foo.t:
    - alias: "Foo once"
      args:  [foo, bar]
    - alias: "Foo twice"
    - alias: "Foo thrice"
      args:  [baz]

  # command-line 
  prove -PTestArgs=t/config.yml --verbose t/foo.t :: quux corge
  Foo once ....
  1..1
  # ['foo','bar']
  ok 1 - t/foo.t
  ok
  Foo twice ...
  1..1
  # ['quux','corge']
  ok 1 - t/foo.t
  ok
  Foo thrice ..
  1..1
  # ['baz']
  ok 1 - t/foo.t
  ok
  All tests successful.
  Files=3, Tests=3,  0 wallclock secs ( 0.02 usr  0.01 sys +  0.07 cusr  0.02 csys =  0.12 CPU)
  Result: PASS

DESCRIPTION

TAP::Harness is the default test harness of the prove command-line test driver program. The harness has a test_args object attribute that allows us to pass different arguments to test scripts. Furthermore the harness runtests() object method implementation allows us to run a test script multiple times giving each run a unique name (an alias). Unfortunately it seems to be impossible to control this functionality directly via the prove command-line interface.

This plugin allows you to assign multiple alias-args pairs to a test script. Each pair triggers a separate run of the test script. The args part of a pair is optional. If it is missing, prove's own optional test script arguments passed at the command-line after an arisdottle (::) are used as a default.

For the time being the configuration has to be stored in a YAML file that is the only argument passed to this plugin.

AUTHORS

Sven Willenbuecher, <sven.willenbuecher@gmx.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Sven Willenbuecher.

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