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