Test2 check that all of your Perl files are tidy
This module lets you test your code for tidiness. It is more or less a drop in replacement for Test::PerlTidy, except that it is implemented using Test2::API, and it handles UTF-8 (a common encoding for Perl source code) better, and works on windows.
run_tests %args;
Test all perl files for tidiness. Options:
-
exclude
run_tests
will look for files to test under the current directory recursively. by default it will exclude files in the./blib/
directory. Setexclude
to a list reference to exclusion criteria if you need to exclude additional files. Strings are assumed to be path prefixes and regular expressions can be used to match any part of the file path name.Note that unlike Test::PerlTidy, this module does NOT use File::Spec
->canonpath
before matching is attempted, because that breaks this module on windows. Instead Path::Tiny is used which gives consistent results on both UNIX and Windows. -
path
Set
path
to the path of the top-level directory that contains the files to be tested. Defaults to.
. -
perltidyrc
By default the usual locations for the perltidyrc file will be searched. You can use this to override a specific tidy file.
-
mute
Off by default, silence diagnostics.
-
skip_all
Set
skip_all
to a true value to skip the whole test file. There isn't really a good reason to use this over the Test2::V0skip_all
function. -
no_plan
Set
no_plan
to skip the plan. By default a plan with the number of files to be tested is performed. There isn't really a good reason to use this over adone_testing
call, but this is the default to maintain backward compatibility with Test::PerlTidy.
use Test2::Tools::PerlTidy qw( is_file_tidy );
my $bool = is_file_tidy $filename;
my $bool = is_file_tidy $filename, $perltidyrc;
Returns true if the file is tidy or false otherwise. Sends diagnostics via the Test2 API. Exportable on request.
my @files = Test2::Tools::PerlTidy::list_files $path;
my @files = Test2::Tools::PerlTidy::list_files %args;
Generate the list of files to be tested. Don't use this. Included as part of the public interface for backward compatibility with Test::PerlTidy. Not exported.
my $content = Test2::Tools::PerlTidy::load_file $filename;
Load the UTF-8 encoded file to be tested from disk and return the contents. Don't use this. Included as part of the public interface for backward compatibility with Test::PerlTidy. Not exported.
This module uses Text::Diff to compare how untidy files are different from the tidy
counterparts. By default Text::Diff escapes Unicode characters, which keeps the tables
lined up correctly even when the characters are of different widths. You can change
this behavior by setting $Text::Diff::Config::Output_Unicode
to a true value. For
example:
use Test2::Tools::PerlTidy;
local $Text::Diff::Config::Output_Unicode = 1;
run_tests;
will print out any Unicode characters as-is, but may produce table cells that do not line up if the characters are of different widths.
Graham Ollis plicease@cpan.org
This software is copyright (c) 2018-2024 by Graham Ollis.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.