雖然測(cè)試是良好的連續(xù)交付流程的關(guān)鍵部分,但大多數(shù)人不想篩選數(shù)千行控制臺(tái)輸出,以查找有關(guān)測(cè)試失敗的信息。為了使這更容易,Jenkins可以記錄和匯總測(cè)試結(jié)果,只要您的測(cè)試運(yùn)行器可以輸出測(cè)試結(jié)果文件。Jenkins通常捆綁在一起junit,但是如果您的測(cè)試運(yùn)行器無(wú)法輸出JUnit風(fēng)格的XML報(bào)告,則還會(huì)有其他插件,可以處理任何廣泛使用的測(cè)試報(bào)告格式。
要收集我們的測(cè)試結(jié)果和工件,我們將使用該post部分。
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Test') {
steps {
sh './gradlew check'
}
}
}
post {
always {
junit 'build/reports/**/*.xml'
}
}
}
Toggle Scripted Pipeline (Advanced)
Jenkinsfile (Scripted Pipeline)
node {
try{
stage('Test') {
sh './gradlew check'
}
finally {
junit 'build/reports/**/*.xml'
}
}
這將永遠(yuǎn)抓住測(cè)試結(jié)果,讓Jenkins跟蹤他們,計(jì)算趨勢(shì)并對(duì)其進(jìn)行報(bào)告。測(cè)試失敗的Pipeline將被標(biāo)記為“不穩(wěn)定”,在Web UI中用黃色表示。這與“FAILED”狀態(tài)不同,用紅色表示。
當(dāng)有測(cè)試失敗時(shí),從Jenkins抓住建造的文物進(jìn)行本地分析和調(diào)查往往是有用的。Jenkins內(nèi)置的支持存儲(chǔ)“工件”,在Pipeline執(zhí)行過(guò)程中生成的文件,實(shí)際上是這樣。
這很容易通過(guò)archive步驟和文件集合表達(dá)式完成,如下面的示例所示:
Jenkinsfile (Declarative Pipeline)
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'
}
}
}
Toggle Scripted Pipeline (Advanced)
Jenkinsfile (Scripted Pipeline)
node {
try{
stage('Test') {
sh './gradlew check'
}
finally {
archiveArtifacts artifacts: 'build/libs/**/*.jar', fingerprint: true
junit 'build/reports/**/*.xml'
}
}
記錄Jenkins中的測(cè)試和工件對(duì)于快速輕松地向團(tuán)隊(duì)的各個(gè)成員發(fā)布信息非常有用。在下一節(jié)中,我們將討論如何告訴團(tuán)隊(duì)成員什么在我們的Pipeline已經(jīng)發(fā)生的事情。
更多建議: