gpt4 book ai didi

linux - 我怎样才能得到封面来创建 cover_db?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:31:21 27 4
gpt4 key购买 nike

我正在尝试设置 Jenkins 以在我的 Perl 项目上运行测试和覆盖。在 Jenkins 中,我有一个如下所示的 shell 脚本:

perl --version
perl Build.PL
prove -v test.pl --timer -l t > jenkins-${JOB_NAME}-${BUILD_NUMBER}-junit.TAP
/usr/local/bin/cover -test -report clover

当 shell 执行此调用“/usr/local/bin/cover -test -report clover”时,它会创建以下输出:

Deleting database /var/lib/jenkins/workspace/Banking/cover_db
cover: running ./Build test "--extra_compiler_flags=-O0 -fprofile-arcs -ftest- coverage" "--extra_linker_flags=-fprofile-arcs -ftest-coverage"
test.pl .. ok
All tests successful.
Files=1, Tests=120, 7 wallclock secs ( 0.04 usr 0.01 sys + 0.91 cusr 0.04 csys = 1.00 CPU)
Result: PASS
Reading database from /var/lib/jenkins/workspace/Banking/cover_db

Writing clover output file to '/var/lib/jenkins/workspace/Banking/cover_db/clover.xml'...
No such file or directory at /usr/local/share/perl5/Devel/Cover/Report/Clover/Builder.pm line 40.
Build step 'Execute shell' marked build as failure

在我看来它删除了 cover_db 目录(如果它存在)但无法重新创建它,有人知道我做错了什么吗?作为 Jenkins 用户,我可以创建和删除 cover_db 目录,所以我猜这应该不是用户权限问题。

提前致谢

简·埃斯基尔森

最佳答案

在Devel/Cover/Report/Clover/Builder.pm中提到的第(40)行:

 open( my $fh, '>', $outfile ) or die($!);

在您的示例中,$outfile 为“clover.xml”。

编辑:澄清一下,在我看来它死于

open ( my $fh, '>', '/var/lib/jenkins/workspace/Banking/cover_db/clover.xml' )

这就是为什么我怀疑存在以下问题之一,因为“开放”本身还没有以任何不可挽回的方式让我失望。不幸的是,我不能确切地说出问题是什么。希望有人可以。

因此,很可能是 Clover 没有在目录中写入此文件的访问权限的问题,因为此行只是尝试打开具有写入访问权限的文件,如果 open() 失败则失败。

仔细检查 Clover 的权限,应该可以修复它。

编辑:因为它传递了整个路径,(即 $outfile 似乎包含 /var/lib/jenkins/workspace/Banking/cover_db/clover.xml,而不仅仅是 clover.xml,所以当时可能还没有创建目录,我没有深入研究代码来验证何时完成。

因此,您可能还想在运行后检查该目录是否存在,以及它是否有权这样做。

也可以查看目录是否存在,或者clover是否可以创建。

关于linux - 我怎样才能得到封面来创建 cover_db?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26843792/

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