Test::Mojo::Role::Debug - Test::Mojo role to make debugging test failures easier
use Test::More; use Test::Mojo::WithRoles 'Debug'; my $t = Test::Mojo::WithRoles->new('MyApp'); $t->get_ok('/')->status_is(200) ->element_exists('existant') ->d # Does nothing, since test succeeded ->element_exists('non_existant') ->d # Dump entire DOM on fail ->d('#foo') # Dump a specific element on fail ->da # Always dump ->da('#foo') # Always dump a specific element ->da('', 'file.html') # Always dump to a file ; done_testing;
When you chain up a bunch of tests and they fail, you really want an easy way to dump up your markup at a specific point in that chain and see what's what. This module comes to the rescue.
You have all the methods provided by Test::Mojo, plus these:
d
# On test failure: $t->d; # print entire DOM $t->d('#foo'); # print a specific element $t->d('', 'file.html'); # dump entire DOM into a file $t->d('#foo', 'file.html'); # dump specific element into a file
Returns its invocant. On failure of previous tests (see "success" in Test::Mojo), dumps the DOM of the current page to the screen. Takes an optional selector to be passed to "at" in Mojo::DOM, in which case, only the markup of that element will be dumped.
A filename can be provided as the second argument to put the contents into the file instead. To dump entire DOM, use undef or empty string as the first argument.
undef
NOTE: the plugin detects Mojolicious's error page and will dump only the error text from that page, instead of the entire DOM.
da
$t->da; $t->da('#foo'); $t->da('', 'file.html'); $t->da('#foo', 'file.html');
Same as "d", except it always dumps, regardless of whether the previous test failed or not.
Test::Mojo ("or" in Test::Mojo in particular), Mojo::DOM
Fork this module on GitHub: https://github.com/zoffixznet/Test-Mojo-Role-Debug
To report bugs or request features, please use https://github.com/zoffixznet/Test-Mojo-Role-Debug/issues
If you can't access GitHub, you can email your request to bug-test-mojo-role-debug at rt.cpan.org
bug-test-mojo-role-debug at rt.cpan.org
You can use and distribute this module under the same terms as Perl itself. See the LICENSE file included in this distribution for complete details.
LICENSE
To install Test::Mojo::Role::Debug, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Test::Mojo::Role::Debug
CPAN shell
perl -MCPAN -e shell install Test::Mojo::Role::Debug
For more information on module installation, please visit the detailed CPAN module installation guide.