其中一个我CPAN模块是不可用的的activeperl通过它的ppm
效用.显然,我对这个模块的单元测试太彻底,而且当它试图构建它时,ActiveState的构建过程会超时.
所以我想在我的测试中做的是检测我的模块何时在ActivePerl上构建,如果是的话,为构建过程提供更小更快的测试集.
($is_activestate) = grep /provided by ActiveState/, qx($^X -v)
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有更轻量级的选择.在ActivePerl中始终(且仅)设置的环境变量?什么东西Config
?还有其他建议吗?
更新:$ENV{ACTIVESTATE_PPM_BUILD}
在这些构建期间设置的外观.
检查它是否在ActivePerl构建下运行不是最佳的.理想情况下,您要检查它是否在ActiveState的构建环境中运行.我会转储env t/00-use.t
以查看它们是否设置了一些变量来指示这一点.
info("$_=$ENV{$_}") for sort keys %ENV;
Run Code Online (Sandbox Code Playgroud)
您也可以联系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 };
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
435 次 |
最近记录: |