1

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

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

为此,我设置了初始 Perl 测试脚本以接受选项(通过 GetOptions)并将其放入全局(我们的 $noInstall)。初始测试脚本中的打印显示 $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 未定义。

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

4

0 回答 0