Perl 如何让Devel::Cover结果显示在Hudson中?
有没有可能像Cobertura插件那样,让Devel::Cover生成的覆盖率统计信息显示在Hudson的项目视图中?即使是模糊的想法也会受到赞赏 将自定义TAP格式化程序与or's prove_cover等结合起来在大量研究了稀疏文档并进行了大量尝试和错误之后,下面是我提出的一个提炼版本Perl 如何让Devel::Cover结果显示在Hudson中?,perl,hudson,Perl,Hudson,有没有可能像Cobertura插件那样,让Devel::Cover生成的覆盖率统计信息显示在Hudson的项目视图中?即使是模糊的想法也会受到赞赏 将自定义TAP格式化程序与or's prove_cover等结合起来在大量研究了稀疏文档并进行了大量尝试和错误之后,下面是我提出的一个提炼版本 #!/usr/bin/perl -w use strict; use warnings; { use TAP::Harness::JUnit; use English qw( -no_mat
#!/usr/bin/perl -w
use strict;
use warnings;
{
use TAP::Harness::JUnit;
use English qw( -no_match_vars $EXECUTABLE_NAME );
}
my $harness = TAP::Harness::JUnit->new(
{ xmlfile => 'results.xml',
exec => [
$EXECUTABLE_NAME,
"-I/repo/trunk/PerlLib",
'-MDevel::Cover=-silent,1,-coverage,all',
'-w',
],
package => 'ARC::FB',
}
);
$harness->runtests(
[ "/repo/trunk/ARC/FB/Base/basic.t" => 'Base.basic.t' ],
[ "/repo/trunk/ARC/FB/Base/copy_file.t" => 'Base.copy_file.t' ],
[ "/repo/trunk/ARC/FB/Base/create_file.t" => 'Base.create_file.t' ],
[ "/repo/trunk/ARC/FB/Base/new.t" => 'Base.new.t' ],
[ "/repo/trunk/ARC/FB/Base/report.t" => 'Base.report.t' ],
[ "/repo/trunk/ARC/FB/Lurker/build_data_file.t" => 'Lurker.build_data_file.t' ],
[ "/repo/trunk/ARC/FB/Lurker/cleanup.t" => 'Lurker.cleanup.t' ],
[ "/repo/trunk/ARC/FB/Lurker/remove_file.t" => 'Lurker.remove_file.t' ],
[ "/repo/trunk/ARC/FB/Lurker/write_config.t" => 'Lurker.write_config.t' ],
[ "/repo/trunk/ARC/FB/Sign/add_tokens.t" => 'Sign.add_tokens.t' ],
[ "/repo/trunk/ARC/FB/Sign/interpret.t" => 'Sign.interpret.t' ],
[ "/repo/trunk/ARC/FB/Sign/new.t" => 'Sign.new.t' ],
);
__END__
将上述程序保存在/usr/local/bin/harness.pl中,然后配置Jenkins作业以在shell中执行此操作:
cover -delete
/usr/bin/perl -w /usr/local/bin/harness.pl
cover -report clover
然后添加两个生成后操作:
- Jenkins不理解TAP(即Perl*.t的输出),但它理解 理解JUnitXML。因此,TAP::Harness::JUnit模块将JUnit转换添加为生成TAP::Harness包装的TAP
- Devel::Cover及其选项需要作为TAP::harnese exec参数的一部分内联提供
- Devel::如果运行污染检查,Cover会发出巨大的警告噪音
这是在Jenkins 4.478版和Clover插件4.0.6-h-1版上发布的。我不确定是否有人想要“模糊的想法”。。。“伪实现”怎么样?我想我的意思是:“如果你听到任何可以为我指明方向的东西,请写下来!”:)我不确定你是否想听到这些,但你可以自己编写插件。是的,我一直在考虑为Devel::Cover编写Hudson插件,但为什么这样一个插件还不存在的问题令人不安。选择Hudson作为CI服务器并非最终决定。也许有一些替代方案已经支持这一点?是时候重新开始搜索了。。。