【发布时间】:2018-11-19 07:12:28
【问题描述】:
我正在编写需要安装和运行外部软件(亚马逊的本地 DynamoDB 服务器)的测试。有什么方法可以告诉CPAN Testers怎么办?
或者我应该只下载服务器并在测试设置中自己启动它吗?这将需要安装 Java 6.x 或更新版本。所以我想我又回到了第一个问题。
如果人们不知道,CPAN 测试人员是一组使用称为 Smokers 的自动化脚本测试所有 CPAN 的人。
更多背景:
目前,CPAN Testers 显示有 227 台机器通过了 Amazon::DynamoDB 的所有测试,但这是一种误导,因为目前正在运行的七千多个测试中只有一个:use_ok( 'Amazon::DynamoDB' );。其余的隐藏在unless 语句后面:
unless ( $ENV{'AMAZON_DYNAMODB_EXPENSIVE_TESTS'} ) {
plan skip_all => 'Testing this module for real costs money.';
}
还有大量的测试do not pass。我已经解决了这个问题,但是测试需要在测试者的环境中设置三个环境变量和金钱(当前方式):
AMAZON_DYNAMODB_EXPENSIVE_TESTS=1
EC2_ACCESS_KEY=<user's AWS access key>
EC2_SECRET_KEY=<user's AWS secret key>
或安装本地版本的 Amazon DynamoDB。如果这个模块按原样发布,它会在它运行的所有没有先决条件环境设置的机器上显示为损坏(即它会错误地显示为损坏,而不是错误地显示为正在工作)。
【问题讨论】:
-
添加一个 00_prereqs.t 测试文件,如果尚未安装,则安装/测试它....
-
这对 CPAN 测试人员没有帮助,只会导致失败。
-
“告诉 CPAN 测试人员该做什么”是什么意思?
-
@melpomene 对所有 CPAN(即 CPAN 测试人员)运行自动化测试的人员需要在运行测试之前设置外部软件(否则他们都会失败)。所以,希望有某种元数据我可以添加到分发中,告诉自动化测试人员该做什么(或者至少不计算失败,如果它没有针对模块完成)。
-
操作完全由
Makefile.PL/Build.PL控制,与其他所有模块相同。