Perl - TAP::Harness 和 test_args

标签 perl unit-testing testing

我正在使用TAP::Harness在 Perl 中像这样:

$harness = TAP::Harness->new({
        formatter_class => 'TAP::Formatter::Console',
        merge => 1,
        verbosity => 1,
        normalize => 1,
        color => 1,
        test_args => ['--url', $url, '--session', $session],
    });

稍后,我调用 $harness->runtests(),传递一系列测试。

问题是,在我的所有测试中:

use Data::Dumper;
print Dumper \@ARGV;

输出:

$VAR1 = [];

在底层测试中,test_args 不会出现在 @ARGV 中吗?我需要将一些选项传递给每个测试。

最佳答案

你的初始化工作正常吗?我必须将 hashref 传递给构造函数才能使其工作:

use TAP::Harness;

$harness = TAP::Harness->new({
    formatter_class => 'TAP::Formatter::Console',
    merge           => 1,
    verbosity       => 1,
    normalize       => 1,
    color           => 1,
    test_args       => ['--url', $url, '--session', $session],
});

$harness->runtests('simple.t');

在测试中simple.t:

use Test::More;
use Data::Dump qw(dump);

dump [@ARGV];    # prints ["--url", "", "--session", ""]

done_testing;

关于Perl - TAP::Harness 和 test_args,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414497/

相关文章:

使用 GPG 的内存加密中的 Perl PGP

java - Maven-surefire-plugin 测试在 Jenkins 构建中失败但在本地运行成功?

c# - 模拟存储库和测试参数化服务方法

android - 如何在设备上安装未签名的 android 应用程序?

bash - 从命令行按模式从绑定(bind)配置文件中删除区域 block

linux - 文件大小超过 60K 时文件上传失败

perl - 自动调用作为子程序引用的哈希值

unit-testing - 如何对重载函数进行单元测试?

银光用户界面测试

unit-testing - 如何进行同步测试或不共享 stub 服务?