随着Test::More
我经常想要一个模块,运行测试,并有能力中止呼叫者test_plan
。我有一系列测试,为Catalyst::Test
设置了一个插件列表。我不想做我的测试检查,看看它们是否存在;相反,如果这些插件不存在,我希望我的脚本中止。Perl测试::更多和设置测试要求
我试图追踪我的Catalyst::Authentication::Store::DBI::ButMaintained
中的一个错误,并且我注意到这个错误也出现在Catalyst::Authentication::Store::DBI
中。那就是:
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
) ];
正如你所看到的,eval/skip_all
不检查Authorization::Roles
包容,但测试由于它是一个插件的依赖于它。
我还有另一个问题 - 是否有一个更优雅的方式来指定测试依赖项比这个?请记住,我的目标与原作者相同。如果测试要求不存在,我只想跳过测试。理想情况下,在这种情况下,我想破解Catalyst::Test
来封装Catalyst::Plugin::*
东西的插件机制,然后找到一个更好的方法来完成剩下的东西,而不是eval/skip_all
。
这很有趣,我现在就玩,谢谢你提供的信息。 – 2010-09-07 18:42:26
如果我可能会问,为什么downvote? – DVK 2010-09-07 19:28:41
无需卡车'Test :: More-> builder','使用Test :: More;计划(测试=> $ num)'工作正常。 – Schwern 2010-09-07 20:04:44