Avec Test::More
Je veux souvent avoir un module qui exécute des tests et a la capacité d'abandonner les appelants test_plan
. J'ai une série de tests qui configurent une liste de plugins pour Catalyst::Test
. Je ne veux pas avoir à faire mes tests pour voir s'ils existent; à la place, je veux que mon script avorte si ces plugins ne sont pas présents.Perl Test :: Plus et la configuration des exigences de test
J'essayais de repérer un bug dans mon Catalyst::Authentication::Store::DBI::ButMaintained
, et j'ai remarqué que ce bug est également présent dans Catalyst::Authentication::Store::DBI
. Ici, il est:
eval {
require Catalyst::Model::DBI;
require Catalyst::Plugin::Session;
require Catalyst::Plugin::Session::State::Cookie;
require Catalyst::Plugin::Session::Store::File;
require DBD::SQLite;
require Test::WWW::Mechanize::Catalyst;
} or plan skip_all => [email protected];
...
$ENV{'TESTAPP_PLUGINS'} = [ qw(
Authentication
Session
Session::Store::File
Session::State::Cookie
Authorization::Roles
) ];
Comme vous pouvez le voir, la eval/skip_all
ne vérifie pas Authorization::Roles
l'inclusion, mais le test dépend en vertu de celui-ci étant un plug-in.
J'ai une autre question cependant - existe-t-il un moyen plus élégant de spécifier des dépendances de test que cela? Gardez à l'esprit mon objectif est le même que les auteurs originaux. Je veux simplement passer le test, si les exigences de test n'existent pas. Idéalement, dans ce cas, je voudrais pirater Catalyst::Test
pour envelopper le mécanisme de plugin pour Catalyst::Plugin::*
choses, puis trouver une meilleure façon de faire le reste de ce genre de choses sans eval/skip_all
.
Ceci est intéressant, je vais jouer avec maintenant, merci pour l'information. –
Pourquoi le downvote si je peux demander? – DVK
Pas besoin de camper 'Test :: More-> builder',' use Test :: More; plan (tests => $ num) 'fonctionne bien. – Schwern