隨着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