我正在制作一个我打算在CPAN上发布的模块,这是一个公共API的客户端库。
API需要API凭据(client_id / secret),我不确定在为具有此类凭据的分发运行Perl测试方面的最佳做法是什么。
我:
答案 0 :(得分:5)
让测试期望环境变量中的凭据(或者如果它们很长或很复杂,那么配置文件)。如果未提供凭据,请让测试发出警告,其中包含有关使用凭据执行测试的说明。
List<A> list = new ArrayList<>();
Stream<A> streamA1 = list.stream();
Stream<B> streamB1 = (Stream<B>)streamA1; // ERROR! Cannot cast from Stream<A> to Stream<B>
Stream<? extends A> streamA2 = list.stream();
Stream<B> streamB2 = (Stream<B>)streamA2; // OK
自动测试系统(例如许多CPANTes用户)在测试之前永远不会配置模块,因此 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";
}
将测试结果注册到CPAN测试仪上作为“N / A”而不是失败
答案 1 :(得分:0)
我不认为这对于BAIL_OUT进行常见测试是个好主意,由cpan-testers自动运行和模块安装。
我认为您应该将测试移至xt
目录(作者测试),该目录将仅由您运行。是的,转发凭据的最佳方式是ENV
,建议使用 mob 。