Если все тесты, требующие Some::Module
, находятся в одном файле, это легко сделать:
use Test::More;
BEGIN {
eval {
require Some::Module;
1;
} or do {
plan skip_all => "Some::Module is not available";
};
}
(Если вы используете число тестов, например use Test::More tests => 42;
, вам нужнотакже сделайте plan tests => 42;
, если требование выполнится успешно.)
Если в файле, содержащем другие элементы, содержится меньшее количество тестов, то вы можете сделать что-то вроде:
our $HAVE_SOME_MODULE = 0;
BEGIN {
eval {
require Some::Module;
$HAVE_SOME_MODULE = 1;
};
}
# ... some other tests here
SKIP: {
skip "Some::Module is not available", $num_skipped unless $HAVE_SOME_MODULE;
# ... tests using Some::Module here
}