记录测试结果

虽然测试是一个好的持续分发管道的重要组成部分,但大部分人都不愿意在几千行的控制台输出中寻找测试失败的相关信息。为了让事情变得更加容易,只要你测试器可以输出测试结果文件,Jenkins就可以记录并汇总测试结果。Jenkins通常会和junit步骤打包在一起,但如果你的测试器不能输出JUnit风格的XML报告,Jenkins也有可以处理常用测试报告格式的其它插件供使用。

为了收集测试结果,我们在管道中使用post区。

pipeline {
    agent any
    stages {
        stage('Test') {
            steps {
                sh './gradlew check'
            }
        }
    }
    post {
        always {
            junit 'build/reports/**/*.xml'
        }
    }
}

always指明Jenkins一直跟踪并获取测试结果,基于这些测试结果计算趋势图和生成报告。一个测试失败的管道会被标记为UNSTABLE状态,在web UI中以黄色标识,这和一个FAILED状态的管道不同,后者用红色标识。

当管道中有测试失败时,通常获取构建过程中生成的信息进行分析比较有用。Jenkins支持存储这些构建过程中生成的东西。

这个收集可以使用archive步骤来进行,下面是一个文件获取的示例:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh './gradlew build'
            }
        }
        stage('Test') {
            steps {
                sh './gradlew check'
            }
        }
    }

    post {
        always {
            archive 'build/libs/**/*.jar'
            junit 'build/reports/**/*.xml'
        }
    }
}

记录测试和构建过程中生成的东西在Jenkins中可以很容易的在界面中反映一些信息给团队成员。下一节中,我们将要讨论怎么通知团队成员管道中发生了什么事。