gpt4 book ai didi

perl - Perl 测试脚本的操作系统特定测试

转载 作者:行者123 更新时间:2023-11-28 20:18:30 24 4
gpt4 key购买 nike

是否有更优雅的方式来编写依赖于 O/S 的测试脚本部分?

请引用注释行下方的代码。

背景 模块 Perl::Tags 为 VIM 创建一个标签文件。在 Win32 上,目录分隔符是“\”,但在其他操作系统上是“/”。 Vim 的 Perl-support 模块似乎很乐意读取标签文件,因此似乎没有必要修改模块。

#!/usr/bin/perl -w
use strict; use warnings;
use Data::Dumper;

use Test::More tests => 6;
use FindBin qw($Bin);

BEGIN {
use_ok( 'Perl::Tags' );
}

my $naive_tagger = Perl::Tags::Naive->new( max_level=>1 );
ok (defined $naive_tagger, 'created Perl::Tags' );
isa_ok ($naive_tagger, 'Perl::Tags::Naive' );
isa_ok ($naive_tagger, 'Perl::Tags' );

my $result =
$naive_tagger->process(
files => [ "$Bin/Test.pm" ],
refresh=> 1
);
ok ($result, 'processed successfully' ) or diag "RESULT $result";

# Other tests also fail because \Test.pm on Win32 vs /Test.pm on Linux/ OS X
if ( $^O =~ /MSWin32/ ) {
like ($naive_tagger, qr{Test\t\S+\\Test.pm\t/package Test;/} , 'package line');
} else {
like ($naive_tagger, qr{Test\t\S+/Test.pm\t/package Test;/} , 'package line');
}

最佳答案

File::SpecPath::Class专为解决此类特定于平台的问题而构建。

以下是您要尝试执行的操作吗?

#!/usr/bin/perl
use strict; use warnings;

use Test::More tests => 6;
use FindBin qw($Bin);
use File::Spec::Functions qw(catfile catpath rootdir);

BEGIN {
use_ok( 'Perl::Tags' );
}

my $naive_tagger = Perl::Tags::Naive->new(max_level => 1);
ok (defined $naive_tagger, 'created Perl::Tags');
isa_ok ($naive_tagger, 'Perl::Tags::Naive');
isa_ok ($naive_tagger, 'Perl::Tags');

my $result =
$naive_tagger->process(
files => [ catfile($Bin, 'Test.pm') ],
refresh => 1
);
ok ($result, 'processed successfully' ) or diag "RESULT $result";

my $file = catfile(rootdir, 'Test.pm');
# or $file = catpath('C:', rootdir(), 'Test.pm')
# depending on what you mean.

like($naive_tagger
qr{Test\t\S+\Q$file\E\t/package Test;/},
'package line',
);

关于perl - Perl 测试脚本的操作系统特定测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1624253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com