如何为失败的 Jenkins 构建生成代码覆盖率报告

How can I generate a code coverage report for a failed Jenkins build

我正在尝试使用 Jenkins 构建我的 Perl 项目,以便获得 JUnit 报告和测试覆盖率报告。当我的构建失败时,我无法获取我的代码报告。以下是构建的配置方式:

perl Build.PL; ./Build;
cover -delete;
PERL5OPT=-MDevel::Cover prove -b --formatter=TAP::Formatter::JUnit t/ > junit.xml;
cover;

问题是当 prove 以非零状态退出时(即当我的一些测试失败时),cover 命令永远不会运行;构建中止,报告:

Build step 'Execute shell' marked build as failure

是否有获取测试覆盖率报告的好方法,即使某些测试当前失败?

您可以将 cover 部分放入 Post Build 任务中,以便它始终执行,并且您不需要任何额外的逻辑来检查状态