如何根据 testng 测试的通过率阈值使 Jenkins 工作失败

Gre*_*reg 5 testng maven jenkins jenkins-plugins

我们正在尝试使用 Jenkins 作为我们的 CI/CD 解决方案,并希望能够在我们的 TestNG 测试未达到设定的通过率阈值时使部署失败。

目前我们的 Jenkins 作业通过 maven 执行我们的 TestNG 测试,因此任何测试失败都将构建标记为失败。即任何低于 100% 的通过率,都会导致构建作业失败。

我们希望能够使其可配置 - 即如果通过率低于 98%,则测试作业失败。

这是我可以通过一些插件在 Jenkins 工作中控制或配置的东西,还是我必须在 TestNG 侦听器内部编码的东西,即onFinish()并根据计算出的通过率设置返回值?

Dan*_*oto 1

我假设您的测试用例中存在一些不稳定因素,导致即使有 2% 的失败,构建也能通过?否则,我会说任何低于 100% 的事情都是构建失败。

话虽如此,使用声纳怎么样?

有了它,当单元测试成功率 < 98% 时,您可能会导致构建失败(请参阅此处的一些示例屏幕截图)。

您也可能在其他情况下使构建失败。例如,当覆盖范围下降到一定程度以下或发现关键问题时。另外,您还将获得包含所有构建相关指标的仪表板的额外好处。

您需要下载一个名为Build Breaker 的插件,当质量门低于某个阈值时,该插件将使构建失败。

需要注意的一件事是 Sonarqube 人员建议您不要使用此插件。因此,您还可以执行诸如查询 Sonar Rest api并使构建失败或等待他们为其添加核心支持之类的操作。