У меня есть набор тестов, которые всегда называются Module.t
, каждый из которых начинается так:
use 5.026;
use strict;
use warnings;
use Test::Perl::Critic (-severity => 3);
use Module::Path 'module_path';
use Test::More tests => 8;
use Test::Log4perl;
Test::Log4perl->suppress_logging;
BEGIN { use_ok("My::Module") }
critic_ok(module_path("My::Module"));
... actual tests for this module ...
Это сделано так, потому что куча модулей не очень хорошо написана и пытается реорганизоватьВ процессе работы я пытаюсь со временем написать тесты для отдельных модулей.Например.Я не могу просто включить Perl :: Critic для всех источников, потому что он взорвется мне в лицо.
Я хотел бы в идеале сделать «родительский» тест для всех этих, чтобы, когда я или другойРазработчик хочет написать новый тест, они всегда будут иметь все необходимые вещи.Что-то вроде:
use 5.026;
use strict;
use warnings;
# 6 tests because 2 (use_ok and critic_ok) are already in the parent
use parent ParentTest("My::Module", tests => 6);
... actual tests for this module ...
Есть ли в Perl способ сделать это?
Отказ от ответственности: Я - нуб perl, так что, возможно, у этого есть лучшее решение :-)