my CPAN modules中的一个not available通过其ppm
实用程序在ActivePerl上ActiveState's build process times out。显然,我对此模块的单元测试过于彻底,并且在尝试构建它时会One way I've found to do this。
所以我在测试中要做的是检测我的模块何时在ActivePerl上构建,如果是,则为构建过程提供更小更快的测试集。
Config
是:
($is_activestate) = grep /provided by ActiveState/, qx($^X -v)
但我想知道是否有更轻量级的选项。在ActivePerl中始终(且仅)设置的环境变量? $ENV{ACTIVESTATE_PPM_BUILD}
中的某些内容?还有其他建议吗?
更新:在这些版本中,似乎设置了{{3}}。
答案 0 :(得分:7)
检查它是否在ActivePerl构建下运行不是最佳的。理想情况下,您要检查它是否在ActiveState的构建环境中运行。我会在t/00-use.t
中转储env以查看它们是否设置了一些变量来指示这一点。
info("$_=$ENV{$_}") for sort keys %ENV;
您也可以联系ActiveState并询问他们的建议。
或者,您可以这样做,以便最慢的测试仅按需运行(例如,当存在特定环境时)。对其他人来说,5分钟的测试似乎也有些过分。
至于检查您是否正在运行ActiveState构建,以下是一些可能性:
use Config; print Config::local_patches();
返回包含ActivePerl Build
。$Config{cf_email}
设置为support@ActiveState.com
可以随时检查所有这些。
use Config qw( %Config );
my $is_activeperl = 0;
$is_activeperl ||= eval { Config::local_patches() =~ /ActivePerl/i };
$is_activeperl ||= $Config{cf_email} =~ /ActiveState/i;
$is_activeperl ||= eval { require ActivePerl::Config };
$is_activeperl ||= eval { require ActivePerl::PPM };
答案 1 :(得分:4)
根据对activeperl ppm build increase timeout
的快速搜索,您可以将此情况报告给他们的邮件列表/支持,他们将手动增加模块构建的超时值。