package Minilla::CLI::Test; use strict; use warnings; use utf8; use File::pushd; use Minilla::WorkDir; use Minilla::Project; use Minilla::Util qw(check_git parse_options); sub run { my ($self, @args) = @_; my $release = 0; my $author = 1; my $automated = 0; my $all = 0; check_git; parse_options( \@args, 'release!' => \$release, 'author!' => \$author, 'automated!' => \$automated, 'all!' => \$all, ); if ($all) { $release = $author = $automated = 1; } my $project = Minilla::Project->new(); $project->verify_prereqs( ); $ENV{RELEASE_TESTING} =1 if $release; $ENV{AUTHOR_TESTING} =1 if $author; $ENV{AUTOMATED_TESTING} =1 if $automated; my $work_dir = $project->work_dir; my $code = $work_dir->dist_test(); exit $code; } 1; __END__ =head1 NAME Minilla::CLI::Test - Run test cases =head1 SYNOPSIS % minil test --release enables the RELEASE_TESTING env variable --automated enables the AUTOMATED_TESTING env variable --author enables the AUTHOR_TESTING env variable (default behavior) --all enables the RELEASE_TESTING, AUTOMATED_TESTING and AUTHOR_TESTING env variables =head1 DESCRIPTION This sub-command run test cases.