a7o*_*ton 3 perl automated-tests unit-testing
我正在制作一个我计划在CPAN上分发的模块,这是一个公共API的客户端库.
API需要API凭据(client_id/secret),我不确定在为具有此类凭据的分发运行Perl测试方面最佳做法是什么.
我是:
让测试期望环境变量中的凭证(或者如果它们很长或很复杂,则是配置文件).如果未提供凭据,请让测试发出警告,其中包含有关使用凭据执行测试的说明.
use Test::More;
unless ($ENV{MY_ID} && $ENV{MY_PWD}) {
BAIL_OUT "*** This module requires credentials. Pass them in the
MY_ID and MY_PWD environment variables, like
MY_ID=username MY_PWD=passwd make test";
}
Run Code Online (Sandbox Code Playgroud)
自动化测试系统(例如许多CPANTes用户)在测试之前永远不会配置模块,因此BAIL_OUT将测试结果寄存在CPAN测试仪上作为"N/A"而不是失败.