我正在使用 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 但无济于事。关于如何做到这一点的任何建议?谢谢。