gpt4 book ai didi

Jenkins - 如何找出哪些测试重复失败?

转载 作者:行者123 更新时间:2023-12-02 18:55:52 24 4
gpt4 key购买 nike

我是 CI 和 Jenkins 的新手。我有一个运行基于 Testng 的自动化测试的 Java 项目。这些测试作为 Jenkins 中的一项工作定期运行。有时,工作会在很长一段时间内反复失败。但是,在每次运行中,测试失败的数量是不同的。我想看看哪些测试反复失败,比如最近 5 次运行。这样,我就可以减少必须调查的测试失败的数量。过去 5 次运行中未重复出现的故障可以忽略或稍后进行调查。

有人可以建议我如何找出哪些测试在连续运行中重复失败吗?

PS - 这是一个示例,解释了为什么我想在过去几次运行中看到测试失败。

Run 1 - test1 failed, test3 failed, test10 failed.
Run 2 - test3 failed, test17 failed.
Run 3 - test1 failed, test3 failed.

查看这 3 次运行后,我们发现 test3 在所有运行中都失败了。但是,其他测试至少在三轮运行之一中通过。我知道在我开始这 3 次运行之前 test3 曾经通过。这告诉我,test3 可能由于系统中的错误而失败,但其他测试可能由于系统中的间歇性问题而失败。此信息使我能够决定首先调查哪个测试,即 test3。如果需要的话,我可以稍后查看其他测试。

最佳答案

您可以从管道中的构建对象中获取测试失败的次数:您可以制作一个小报告并将其附加到您的构建中,如下所示:

@NonCPS
def getRepeatedlyFailingTests(int timesFailedAtLeast = 2) {
currentBuild.rawBuild.getAction(hudson.tasks.junit.TestResultAction.class)
.getFailedTests()
// Keep only tests that failed at least twice
.findAll { it.age >= timesFailedAtLeast }
.collect { [ "${it.className}.${it.name}".trim(), it.age ] }
}

def saveRepeatedlyFailingTestsReport() {
def header = [ "test", "times-failed" ]
def records = getRepeatedlyFailingTests()
def report = "repeatedly-failing-tests.csv"
writeCSV file: report, records: [ header ] + records, format: CSVFormat.EXCEL
archiveArtifacts report
}

收集测试结果后调用 saveRepeatedlyFailingTestsReport,您将在最新的构建工件链接中看到该报告。

关于Jenkins - 如何找出哪些测试重复失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58945686/

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