Perl - TAP :: Harness和test_args

时间:2011-06-20 16:32:49

标签: perl unit-testing testing

我在perl中使用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(),传递几个测试的数组。

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

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

输出:

$VAR1 = [];

在底层测试中,@ arGV中是否没有test_args出现?我需要将一些选项传递给每个测试。

1 个答案:

答案 0 :(得分:4)

您的初始化是否有效?我必须将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;