指定TAP:利用全局参数

时间:2013-07-31 17:30:03

标签: perl testing globals tap-harness

我正在使用TAP :: harness(以及它的新手)在Jenkins下运行几个测试。在编写这些测试的过程中,我希望最初能够从命令行运行并指定一些其他参数。

例如,其中一个测试将安装我们的项目。这是一个相当漫长的过程,我希望能够跳过此安装测试(以及稍后的卸载测试),以便更快地运行干预测试。

为此,我设置了初始Perl测试脚本以接受选项(通过GetOptions)并将其放入全局(我们的$ noInstall)。初始测试脚本中的print显示已设置$ noInstall,但是当测试运行时,$ noInstall未定义。

#!/usr/bin/perl
# unixIntegrationTest.pl
use strict;
use TAP::Harness::JUnit;
use Getopt::Long;

our $noInstall="";

GetOptions (
  'n|no-install' => \$noInstall,
);

print("noInstall=$noInstall\n");

...

my @tests = (
    [ 'unixInstall.t', 'Unix silent install' ],
    [ 'unixUninstall.t', 'Unix silent uninstall' ],
);

$harness->runtests(@tests);

在测试中:

#unixInstall.t
use Test::More;

use silentInstall;
use Cwd;
use File::Path;

plan tests => 1;

print("noInstall=$noInstall\n");
...

测试输出显示$ noInstall为undefined。

我尝试了各种变体,比如引用$ main :: noInstall但无济于事。有关如何做到这一点的任何建议?谢谢。

0 个答案:

没有答案