App::Prove::Plugin::Waivers - (incomplete) 'prove' plugin support for TAP::DOM::Waivers
Command-line usage:
# generally prove -P Waivers=waiverspec.yml [...] # example prove -e cat -P Waivers=waiver.yml t/failed_IPv6.tap
This plugin allows modifying TAP via TAP::DOM::Waivers. Read there for the motivation.
It loads a spec (waiver) file, loads the original TAP, converts it into an intermediate TAP-DOM, applies the waivers to that TAP-DOM, converts the patched TAP-DOM back to TAP and provides that to the TAP::Parser instead of the original TAP.
A waiver.yml contains a specification like this:
waiver.yml
--- - comment: Force all failed IPv6 stuff to true match_dpath: - "//lines//description[value =~ /IPv6/]/../is_ok[value eq 0]/.." patch: is_ok: 1 has_todo: 1 is_actual_ok: 0 explanation: ignore failing IPv6 related tests directive: TODO
This specifies to modify (patch) every not ok tests where the description matches the regex /IPv6/. They are fixed by declaring them to be a #TODO test with the explanation.
/IPv6/
See TAP::DOM::Waivers for description of the backend behind this prove plugin.
See TAP::DOM for description of the TAP-DOM data structure that is modified.
See Data::DPath for description of the xpath-like query language used to find the tests. It provides the power for fuzzy tracking of tests in ever changing test suites.
A waiver file is a YAML representation of a waiver spec as described in TAP::DOM::Waivers. Please read there for the data structure and adapt it into YAML as shown in the SYNOPSIS.
The prove plugin code is shamelessly stolen from Steve Purkis' App::Prove::Plugin::HTML.
prove, App::Prove
Steffen Schwigon <ss5@renormalist.net>
This software is copyright (c) 2014 by Steffen Schwigon.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install TAP::DOM::Waivers, copy and paste the appropriate command in to your terminal.
cpanm
cpanm TAP::DOM::Waivers
CPAN shell
perl -MCPAN -e shell install TAP::DOM::Waivers
For more information on module installation, please visit the detailed CPAN module installation guide.